home *** CD-ROM | disk | FTP | other *** search
MacBinary | 1995-01-21 | 18.9 KB | [ TEXT/KAHL]
open in: MacOS 8.1
extracted
|
Win98
extracted
|
DOS
extracted
browse contents |
view JSON data
|
view as text
This file was processed as: MacBinary
(archive/macBinary ).
Confidence Program Detection Match Type Support
10%
dexvert
MacBinary (archive/macBinary)
fallback
Supported
1%
dexvert
Text File (text/txt)
fallback
Supported
100%
file
MacBinary II, Sat Jan 21 10:12:56 1995, modified Sat Jan 21 10:12:56 1995, creator Think C, type ASCII, 18650 bytes "NString_Substring.cxx" , at 0x495a 444 bytes resource
default (weak)
99%
file
data
default
74%
TrID
Macintosh plain text (MacBinary)
default
25%
TrID
MacBinary 2
default (weak)
100%
siegfried
fmt/1762 MacBinary (II)
default
100%
lsar
MacBinary
default
id metadata key value macFileType [ TEXT] macFileCreator [ KAHL]
hex view +--------+-------------------------+-------------------------+--------+--------+ |00000000| 00 15 4e 53 74 72 69 6e | 67 5f 53 75 62 73 74 72 |..NStrin|g_Substr| |00000010| 69 6e 67 2e 63 78 78 00 | 00 00 00 00 00 00 00 00 |ing.cxx.|........| |00000020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........| |00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........| |00000040| 00 54 45 58 54 4b 41 48 | 4c 00 00 00 00 00 00 00 |.TEXTKAH|L.......| |00000050| 00 00 00 00 00 48 da 00 | 00 01 bc ab 46 d4 f8 ab |.....H..|....F...| |00000060| 46 d4 f8 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |F.......|........| |00000070| 00 00 00 00 00 00 00 00 | 00 00 81 81 32 01 00 00 |........|....2...| |00000080| 0d 23 69 6e 63 6c 75 64 | 65 20 3c 73 74 72 69 6e |.#includ|e <strin| |00000090| 67 2e 68 3e 0d 23 69 6e | 63 6c 75 64 65 20 3c 73 |g.h>.#in|clude <s| |000000a0| 74 64 6c 69 62 2e 68 3e | 0d 23 69 6e 63 6c 75 64 |tdlib.h>|.#includ| |000000b0| 65 20 3c 6c 69 6d 69 74 | 73 2e 68 3e 0d 0d 23 69 |e <limit|s.h>..#i| |000000c0| 6e 63 6c 75 64 65 20 22 | 4e 53 74 72 69 6e 67 2e |nclude "|NString.| |000000d0| 68 22 0d 23 69 6e 63 6c | 75 64 65 20 22 4e 53 74 |h".#incl|ude "NSt| |000000e0| 72 69 6e 67 5f 4d 69 73 | 63 2e 68 22 0d 0d 2f 2f |ring_Mis|c.h"..//| |000000f0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00000100| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00000110| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00000120| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00000130| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00000140| 5f 0d 0d 63 68 61 72 20 | 2a 4e 53 74 72 69 6e 67 |_..char |*NString| |00000150| 3a 3a 73 74 72 69 6e 67 | 20 28 76 6f 69 64 29 20 |::string| (void) | |00000160| 63 6f 6e 73 74 0d 7b 0d | 09 63 68 61 72 20 2a 72 |const.{.|.char *r| |00000170| 65 73 75 6c 74 3b 0d 09 | 0d 09 69 66 20 28 28 72 |esult;..|..if ((r| |00000180| 65 73 75 6c 74 20 3d 20 | 28 63 68 61 72 20 2a 29 |esult = |(char *)| |00000190| 6d 61 6c 6c 6f 63 28 73 | 62 2d 3e 6c 65 6e 2b 31 |malloc(s|b->len+1| |000001a0| 29 29 20 3d 3d 20 4e 55 | 4c 4c 29 0d 09 09 4f 55 |)) == NU|LL)...OU| |000001b0| 54 5f 4f 46 5f 4d 45 4d | 28 22 73 74 72 69 6e 67 |T_OF_MEM|("string| |000001c0| 20 28 76 6f 69 64 29 20 | 63 6f 6e 73 74 22 29 3b | (void) |const");| |000001d0| 0d 09 73 74 72 63 70 79 | 28 72 65 73 75 6c 74 2c |..strcpy|(result,| |000001e0| 20 73 62 2d 3e 73 74 72 | 29 3b 0d 09 72 65 74 75 | sb->str|);..retu| |000001f0| 72 6e 20 28 72 65 73 75 | 6c 74 29 3b 0d 7d 0d 0d |rn (resu|lt);.}..| |00000200| 2f 2f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |//______|________| |00000210| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00000220| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00000230| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00000240| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00000250| 5f 5f 5f 0d 0d 4e 53 74 | 72 69 6e 67 20 4e 53 74 |___..NSt|ring NSt| |00000260| 72 69 6e 67 3a 3a 66 72 | 6f 6d 74 6f 20 28 75 6e |ring::fr|omto (un| |00000270| 73 69 67 6e 65 64 20 6c | 6f 6e 67 20 69 6e 74 20 |signed l|ong int | |00000280| 66 72 6f 6d 2c 20 75 6e | 73 69 67 6e 65 64 20 6c |from, un|signed l| |00000290| 6f 6e 67 20 69 6e 74 20 | 74 6f 29 20 63 6f 6e 73 |ong int |to) cons| |000002a0| 74 0d 7b 0d 09 75 6e 73 | 69 67 6e 65 64 20 6c 6f |t.{..uns|igned lo| |000002b0| 6e 67 20 69 6e 74 20 6e | 65 77 5f 6c 65 6e 67 74 |ng int n|ew_lengt| |000002c0| 68 3b 0d 09 0d 09 69 66 | 20 28 73 62 2d 3e 6c 65 |h;....if| (sb->le| |000002d0| 6e 20 3d 3d 20 30 29 09 | 09 09 09 09 09 09 09 09 |n == 0).|........| |000002e0| 09 09 09 09 2f 2f 20 61 | 6d 20 49 20 61 6e 20 65 |....// a|m I an e| |000002f0| 6d 70 74 79 20 73 74 72 | 69 6e 67 20 3f 0d 09 09 |mpty str|ing ?...| |00000300| 72 65 74 75 72 6e 20 28 | 2a 74 68 69 73 29 3b 0d |return (|*this);.| |00000310| 09 69 66 20 28 28 66 72 | 6f 6d 20 3e 20 74 6f 29 |.if ((fr|om > to)| |00000320| 20 7c 7c 20 28 66 72 6f | 6d 20 3e 20 73 62 2d 3e | || (fro|m > sb->| |00000330| 6c 65 6e 29 29 09 09 09 | 09 09 09 09 2f 2f 09 65 |len))...|....//.e| |00000340| 6d 70 74 79 20 72 61 6e | 67 65 20 73 70 65 63 69 |mpty ran|ge speci| |00000350| 66 69 65 64 20 6f 72 20 | 72 61 6e 67 65 20 6f 75 |fied or |range ou| |00000360| 74 73 69 64 65 20 6f 66 | 20 4e 53 74 72 69 6e 67 |tside of| NString| |00000370| 20 3f 0d 09 09 72 65 74 | 75 72 6e 20 4e 53 74 72 | ?...ret|urn NStr| |00000380| 69 6e 67 28 29 3b 0d 09 | 69 66 20 28 74 6f 20 3e |ing();..|if (to >| |00000390| 20 73 62 2d 3e 6c 65 6e | 29 09 09 09 09 09 09 09 | sb->len|).......| |000003a0| 09 09 09 09 09 09 09 2f | 2f 20 22 74 6f 22 20 74 |......./|/ "to" t| |000003b0| 6f 6f 20 62 69 67 20 3f | 0d 09 09 74 6f 20 3d 20 |oo big ?|...to = | |000003c0| 73 62 2d 3e 6c 65 6e 20 | 2d 20 31 3b 0d 09 65 6c |sb->len |- 1;..el| |000003d0| 73 65 0d 09 09 69 66 20 | 28 74 6f 20 3e 20 30 29 |se...if |(to > 0)| |000003e0| 0d 09 09 09 74 6f 2d 2d | 3b 0d 09 09 65 6c 73 65 |....to--|;...else| |000003f0| 0d 09 09 09 72 65 74 75 | 72 6e 20 4e 53 74 72 69 |....retu|rn NStri| |00000400| 6e 67 28 29 3b 0d 0d 09 | 69 66 20 28 66 72 6f 6d |ng();...|if (from| |00000410| 20 3e 20 30 29 0d 09 09 | 66 72 6f 6d 2d 2d 3b 0d | > 0)...|from--;.| |00000420| 09 09 0d 09 69 66 20 28 | 28 6e 65 77 5f 6c 65 6e |....if (|(new_len| |00000430| 67 74 68 20 3d 20 74 6f | 20 2d 20 66 72 6f 6d 20 |gth = to| - from | |00000440| 2b 20 31 29 20 3d 3d 20 | 73 62 2d 3e 6c 65 6e 29 |+ 1) == |sb->len)| |00000450| 0d 09 09 72 65 74 75 72 | 6e 20 28 2a 74 68 69 73 |...retur|n (*this| |00000460| 29 3b 0d 09 65 6c 73 65 | 0d 09 7b 0d 09 09 4e 53 |);..else|..{...NS| |00000470| 74 72 69 6e 67 20 72 65 | 73 75 6c 74 28 6e 65 77 |tring re|sult(new| |00000480| 5f 6c 65 6e 67 74 68 29 | 3b 0d 09 09 0d 09 09 73 |_length)|;......s| |00000490| 74 72 6e 63 70 79 28 72 | 65 73 75 6c 74 2e 73 62 |trncpy(r|esult.sb| |000004a0| 2d 3e 73 74 72 2c 20 73 | 62 2d 3e 73 74 72 2b 66 |->str, s|b->str+f| |000004b0| 72 6f 6d 2c 20 6e 65 77 | 5f 6c 65 6e 67 74 68 29 |rom, new|_length)| |000004c0| 3b 0d 09 09 72 65 74 75 | 72 6e 20 28 72 65 73 75 |;...retu|rn (resu| |000004d0| 6c 74 29 3b 0d 09 7d 0d | 7d 0d 0d 2f 2f 5f 5f 5f |lt);..}.|}..//___| |000004e0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |000004f0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00000500| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00000510| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00000520| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 0d 0d |________|______..| |00000530| 4e 53 74 72 69 6e 67 26 | 20 4e 53 74 72 69 6e 67 |NString&| NString| |00000540| 3a 3a 63 75 74 28 75 6e | 73 69 67 6e 65 64 20 6c |::cut(un|signed l| |00000550| 6f 6e 67 20 69 6e 74 20 | 61 74 2c 20 75 6e 73 69 |ong int |at, unsi| |00000560| 67 6e 65 64 20 6c 6f 6e | 67 20 69 6e 74 20 6e 29 |gned lon|g int n)| |00000570| 0d 7b 09 0d 09 63 6f 6e | 73 74 20 63 68 61 72 20 |.{...con|st char | |00000580| 2a 66 6e 61 6d 65 20 3d | 20 22 63 75 74 20 28 75 |*fname =| "cut (u| |00000590| 6e 73 69 67 6e 65 64 20 | 6c 6f 6e 67 20 69 6e 74 |nsigned |long int| |000005a0| 2c 20 75 6e 73 69 67 6e | 65 64 20 6c 6f 6e 67 20 |, unsign|ed long | |000005b0| 69 6e 74 29 22 3b 0d 09 | 75 6e 73 69 67 6e 65 64 |int)";..|unsigned| |000005c0| 20 6c 6f 6e 67 20 69 6e | 74 20 66 69 6e 61 6c 5f | long in|t final_| |000005d0| 70 61 72 74 3b 0d 09 75 | 6e 73 69 67 6e 65 64 20 |part;..u|nsigned | |000005e0| 6c 6f 6e 67 20 69 6e 74 | 20 6e 65 77 5f 6c 65 6e |long int| new_len| |000005f0| 67 74 68 3b 0d 0d 09 69 | 66 20 28 61 74 20 3e 20 |gth;...i|f (at > | |00000600| 30 29 0d 09 09 61 74 2d | 2d 3b 0d 09 65 6c 73 65 |0)...at-|-;..else| |00000610| 0d 09 09 69 66 20 28 6e | 20 3e 20 30 29 0d 09 09 |...if (n| > 0)...| |00000620| 09 6e 2d 2d 3b 0d 0d 09 | 69 66 20 28 28 73 62 2d |.n--;...|if ((sb-| |00000630| 3e 6c 65 6e 20 3d 3d 20 | 30 29 20 7c 7c 20 28 6e |>len == |0) || (n| |00000640| 20 3d 3d 20 30 29 20 7c | 7c 20 28 61 74 20 3e 3d | == 0) ||| (at >=| |00000650| 20 73 62 2d 3e 6c 65 6e | 29 29 0d 09 09 72 65 74 | sb->len|))...ret| |00000660| 75 72 6e 20 28 2a 74 68 | 69 73 29 3b 0d 09 0d 09 |urn (*th|is);....| |00000670| 69 66 20 28 28 66 69 6e | 61 6c 5f 70 61 72 74 20 |if ((fin|al_part | |00000680| 3d 20 61 74 20 2b 20 6e | 29 20 3c 20 61 74 29 09 |= at + n|) < at).| |00000690| 09 09 09 09 09 09 09 09 | 09 09 09 09 2f 2f 20 74 |........|....// t| |000006a0| 65 73 74 20 66 6f 72 20 | 6f 76 65 72 66 6c 6f 77 |est for |overflow| |000006b0| 0d 09 7b 0d 09 09 66 69 | 6e 61 6c 5f 70 61 72 74 |..{...fi|nal_part| |000006c0| 20 3d 20 55 4c 4f 4e 47 | 5f 4d 41 58 3b 0d 09 09 | = ULONG|_MAX;...| |000006d0| 6e 65 77 5f 6c 65 6e 67 | 74 68 20 3d 20 61 74 3b |new_leng|th = at;| |000006e0| 0d 09 7d 0d 09 65 6c 73 | 65 0d 09 09 6e 65 77 5f |..}..els|e...new_| |000006f0| 6c 65 6e 67 74 68 20 3d | 20 28 66 69 6e 61 6c 5f |length =| (final_| |00000700| 70 61 72 74 20 3e 3d 20 | 73 62 2d 3e 6c 65 6e 29 |part >= |sb->len)| |00000710| 20 3f 20 61 74 20 3a 20 | 73 62 2d 3e 6c 65 6e 20 | ? at : |sb->len | |00000720| 2d 20 6e 3b 0d 09 0d 09 | 69 66 20 28 73 62 2d 3e |- n;....|if (sb->| |00000730| 72 65 66 73 20 3e 20 31 | 29 0d 09 7b 0d 09 09 73 |refs > 1|)..{...s| |00000740| 74 72 62 6f 64 79 20 2a | 6f 6c 64 5f 73 62 20 3d |trbody *|old_sb =| |00000750| 20 73 62 3b 0d 09 09 0d | 09 09 69 66 20 28 21 20 | sb;....|..if (! | |00000760| 47 65 74 4e 65 77 53 42 | 28 6e 65 77 5f 6c 65 6e |GetNewSB|(new_len| |00000770| 67 74 68 29 29 0d 09 09 | 09 4f 55 54 5f 4f 46 5f |gth))...|.OUT_OF_| |00000780| 4d 45 4d 28 66 6e 61 6d | 65 29 3b 0d 09 09 69 66 |MEM(fnam|e);...if| |00000790| 20 28 61 74 20 3e 20 30 | 29 0d 09 09 09 6d 65 6d | (at > 0|)....mem| |000007a0| 63 70 79 28 73 62 2d 3e | 73 74 72 2c 20 6f 6c 64 |cpy(sb->|str, old| |000007b0| 5f 73 62 2d 3e 73 74 72 | 2c 20 61 74 29 3b 09 09 |_sb->str|, at);..| |000007c0| 09 09 09 09 09 09 09 2f | 2f 20 63 6f 70 79 20 69 |......./|/ copy i| |000007d0| 6e 69 74 69 61 6c 20 72 | 65 6d 61 69 6e 69 6e 67 |nitial r|emaining| |000007e0| 20 70 61 72 74 20 6f 66 | 20 73 74 72 69 6e 67 0d | part of| string.| |000007f0| 09 09 69 66 20 28 66 69 | 6e 61 6c 5f 70 61 72 74 |..if (fi|nal_part| |00000800| 20 3c 20 6f 6c 64 5f 73 | 62 2d 3e 6c 65 6e 29 0d | < old_s|b->len).| |00000810| 09 09 09 73 74 72 63 70 | 79 28 73 62 2d 3e 73 74 |...strcp|y(sb->st| |00000820| 72 20 2b 20 61 74 2c 20 | 6f 6c 64 5f 73 62 2d 3e |r + at, |old_sb->| |00000830| 73 74 72 20 2b 20 66 69 | 6e 61 6c 5f 70 61 72 74 |str + fi|nal_part| |00000840| 29 3b 09 09 09 09 2f 2f | 20 63 6f 70 79 20 66 69 |);....//| copy fi| |00000850| 6e 61 6c 20 72 65 6d 61 | 69 6e 69 6e 67 20 70 61 |nal rema|ining pa| |00000860| 72 74 20 6f 66 20 73 74 | 72 69 6e 67 0d 09 7d 0d |rt of st|ring..}.| |00000870| 09 65 6c 73 65 0d 09 7b | 0d 09 09 69 66 20 28 66 |.else..{|...if (f| |00000880| 69 6e 61 6c 5f 70 61 72 | 74 20 3c 20 73 62 2d 3e |inal_par|t < sb->| |00000890| 6c 65 6e 29 09 09 09 09 | 09 09 09 09 09 09 09 09 |len)....|........| |000008a0| 09 09 2f 2f 20 74 68 65 | 72 65 20 69 73 20 61 20 |..// the|re is a | |000008b0| 66 69 6e 61 6c 20 70 61 | 72 74 20 74 6f 20 6d 6f |final pa|rt to mo| |000008c0| 76 65 0d 09 09 09 6d 65 | 6d 6d 6f 76 65 28 73 62 |ve....me|mmove(sb| |000008d0| 2d 3e 73 74 72 20 2b 20 | 61 74 2c 20 73 62 2d 3e |->str + |at, sb->| |000008e0| 73 74 72 20 2b 20 66 69 | 6e 61 6c 5f 70 61 72 74 |str + fi|nal_part| |000008f0| 2c 20 73 62 2d 3e 6c 65 | 6e 20 2d 20 66 69 6e 61 |, sb->le|n - fina| |00000900| 6c 5f 70 61 72 74 20 2b | 20 31 29 3b 0d 09 09 65 |l_part +| 1);...e| |00000910| 6c 73 65 0d 09 09 09 73 | 62 2d 3e 73 74 72 5b 61 |lse....s|b->str[a| |00000920| 74 5d 20 3d 20 27 5c 30 | 27 3b 09 09 09 09 09 09 |t] = '\0|';......| |00000930| 09 09 09 09 09 09 09 09 | 09 2f 2f 20 6f 74 68 65 |........|.// othe| |00000940| 72 77 69 73 65 20 74 65 | 72 6d 69 6e 61 74 65 20 |rwise te|rminate | |00000950| 73 74 72 69 6e 67 20 61 | 66 74 65 72 20 69 6e 69 |string a|fter ini| |00000960| 74 69 61 6c 20 70 61 72 | 74 0d 0d 09 09 73 62 2d |tial par|t....sb-| |00000970| 3e 6c 65 6e 20 3d 20 6e | 65 77 5f 6c 65 6e 67 74 |>len = n|ew_lengt| |00000980| 68 3b 0d 0d 09 09 69 66 | 20 28 21 20 52 65 61 6c |h;....if| (! Real| |00000990| 6c 6f 63 53 74 72 42 75 | 66 28 6e 65 77 5f 6c 65 |locStrBu|f(new_le| |000009a0| 6e 67 74 68 29 29 09 09 | 09 09 09 09 09 09 09 09 |ngth))..|........| |000009b0| 09 2f 2f 20 73 68 72 69 | 6e 6b 20 73 74 72 69 6e |.// shri|nk strin| |000009c0| 67 27 73 20 6d 65 6d 6f | 72 79 20 62 6c 6f 63 6b |g's memo|ry block| |000009d0| 0d 09 09 09 4f 55 54 5f | 4f 46 5f 4d 45 4d 28 66 |....OUT_|OF_MEM(f| |000009e0| 6e 61 6d 65 29 3b 09 09 | 09 09 09 09 09 09 09 09 |name);..|........| |000009f0| 09 09 09 2f 2f 20 74 68 | 69 73 20 22 4f 75 74 20 |...// th|is "Out | |00000a00| 6f 66 20 4d 65 6d 6f 72 | 79 22 20 73 68 6f 75 6c |of Memor|y" shoul| |00000a10| 64 20 6e 65 76 65 72 20 | 68 61 70 70 65 6e 20 2e |d never |happen .| |00000a20| 2e 2e 0d 09 7d 0d 09 72 | 65 74 75 72 6e 20 28 2a |....}..r|eturn (*| |00000a30| 74 68 69 73 29 3b 0d 7d | 0d 0d 2f 2f 5f 5f 5f 5f |this);.}|..//____| |00000a40| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00000a50| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00000a60| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00000a70| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00000a80| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 0d 0d 75 |________|_____..u| |00000a90| 6e 73 69 67 6e 65 64 20 | 6c 6f 6e 67 20 69 6e 74 |nsigned |long int| |00000aa0| 20 4e 53 74 72 69 6e 67 | 3a 3a 6c 65 66 74 70 6f | NString|::leftpo| |00000ab0| 73 28 63 6f 6e 73 74 20 | 63 68 61 72 20 2a 73 29 |s(const |char *s)| |00000ac0| 20 63 6f 6e 73 74 0d 7b | 0d 09 63 68 61 72 20 2a | const.{|..char *| |00000ad0| 70 6f 73 3b 0d 09 0d 09 | 69 66 20 28 28 70 6f 73 |pos;....|if ((pos| |00000ae0| 20 3d 20 73 74 72 73 74 | 72 28 73 62 2d 3e 73 74 | = strst|r(sb->st| |00000af0| 72 2c 20 73 29 29 20 21 | 3d 20 4e 55 4c 4c 29 0d |r, s)) !|= NULL).| |00000b00| 09 09 72 65 74 75 72 6e | 20 28 75 6e 73 69 67 6e |..return| (unsign| |00000b10| 65 64 20 6c 6f 6e 67 20 | 69 6e 74 29 28 70 6f 73 |ed long |int)(pos| |00000b20| 20 2d 20 73 62 2d 3e 73 | 74 72 20 2b 20 31 29 3b | - sb->s|tr + 1);| |00000b30| 0d 09 65 6c 73 65 0d 09 | 09 72 65 74 75 72 6e 20 |..else..|.return | |00000b40| 28 30 29 3b 0d 7d 0d 0d | 2f 2f 5f 5f 5f 5f 5f 5f |(0);.}..|//______| |00000b50| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00000b60| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00000b70| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00000b80| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00000b90| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 0d 0d 75 6e 73 |________|___..uns| |00000ba0| 69 67 6e 65 64 20 6c 6f | 6e 67 20 69 6e 74 20 4e |igned lo|ng int N| |00000bb0| 53 74 72 69 6e 67 3a 3a | 6c 65 66 74 70 6f 73 28 |String::|leftpos(| |00000bc0| 63 6f 6e 73 74 20 63 68 | 61 72 20 63 29 20 63 6f |const ch|ar c) co| |00000bd0| 6e 73 74 0d 7b 0d 09 75 | 6e 73 69 67 6e 65 64 20 |nst.{..u|nsigned | |00000be0| 6c 6f 6e 67 20 69 6e 74 | 20 69 2c 20 70 6f 73 20 |long int| i, pos | |00000bf0| 3d 20 30 3b 0d 09 0d 09 | 69 66 20 28 73 62 2d 3e |= 0;....|if (sb->| |00000c00| 6c 65 6e 20 3d 3d 20 30 | 29 0d 09 09 72 65 74 75 |len == 0|)...retu| |00000c10| 72 6e 20 28 30 29 3b 09 | 09 09 09 09 09 09 09 09 |rn (0);.|........| |00000c20| 09 09 09 09 09 09 09 09 | 09 2f 2f 20 6e 6f 20 63 |........|.// no c| |00000c30| 68 61 72 61 63 74 65 72 | 20 63 61 6e 20 62 65 20 |haracter| can be | |00000c40| 66 6f 75 6e 64 20 69 6e | 20 61 6e 20 65 6d 70 74 |found in| an empt| |00000c50| 79 20 73 74 72 69 6e 67 | 0d 0d 09 66 6f 72 20 28 |y string|...for (| |00000c60| 69 3d 30 3b 20 28 69 20 | 3c 20 73 62 2d 3e 6c 65 |i=0; (i |< sb->le| |00000c70| 6e 29 20 26 26 20 28 70 | 6f 73 20 3d 3d 20 30 29 |n) && (p|os == 0)| |00000c80| 3b 20 69 2b 2b 29 0d 09 | 09 69 66 20 28 73 62 2d |; i++)..|.if (sb-| |00000c90| 3e 73 74 72 5b 69 5d 20 | 3d 3d 20 63 29 0d 09 09 |>str[i] |== c)...| |00000ca0| 09 70 6f 73 20 3d 20 69 | 2b 31 3b 0d 09 09 09 0d |.pos = i|+1;.....| |00000cb0| 09 72 65 74 75 72 6e 20 | 28 70 6f 73 29 3b 0d 7d |.return |(pos);.}| |00000cc0| 0d 0d 2f 2f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |..//____|________| |00000cd0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00000ce0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00000cf0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00000d00| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00000d10| 5f 5f 5f 5f 5f 0d 0d 75 | 6e 73 69 67 6e 65 64 20 |_____..u|nsigned | |00000d20| 6c 6f 6e 67 20 69 6e 74 | 20 4e 53 74 72 69 6e 67 |long int| NString| |00000d30| 3a 3a 6c 65 66 74 70 6f | 73 20 28 63 6f 6e 73 74 |::leftpo|s (const| |00000d40| 20 41 6c 70 68 61 62 65 | 74 26 20 61 29 20 63 6f | Alphabe|t& a) co| |00000d50| 6e 73 74 0d 7b 0d 09 75 | 6e 73 69 67 6e 65 64 20 |nst.{..u|nsigned | |00000d60| 6c 6f 6e 67 20 69 6e 74 | 20 69 2c 20 70 6f 73 20 |long int| i, pos | |00000d70| 3d 20 30 3b 0d 0d 09 69 | 66 20 28 73 62 2d 3e 6c |= 0;...i|f (sb->l| |00000d80| 65 6e 20 3d 3d 20 30 29 | 0d 09 09 72 65 74 75 72 |en == 0)|...retur| |00000d90| 6e 20 28 30 29 3b 09 09 | 09 09 09 09 09 09 09 09 |n (0);..|........| |00000da0| 09 09 09 09 09 09 09 09 | 2f 2f 20 6e 6f 20 63 68 |........|// no ch| |00000db0| 61 72 61 63 74 65 72 20 | 63 61 6e 20 62 65 20 66 |aracter |can be f| |00000dc0| 6f 75 6e 64 20 69 6e 20 | 61 6e 20 65 6d 70 74 79 |ound in |an empty| |00000dd0| 20 73 74 72 69 6e 67 0d | 09 0d 09 66 6f 72 20 28 | string.|...for (| |00000de0| 69 3d 30 3b 20 28 69 20 | 3c 20 73 62 2d 3e 6c 65 |i=0; (i |< sb->le| |00000df0| 6e 29 20 26 26 20 28 70 | 6f 73 20 3d 3d 20 30 29 |n) && (p|os == 0)| |00000e00| 3b 20 69 2b 2b 29 0d 09 | 09 69 66 20 28 61 2e 63 |; i++)..|.if (a.c| |00000e10| 6f 6e 74 61 69 6e 73 28 | 73 62 2d 3e 73 74 72 5b |ontains(|sb->str[| |00000e20| 69 5d 29 29 0d 09 09 09 | 70 6f 73 20 3d 20 69 2b |i]))....|pos = i+| |00000e30| 31 3b 0d 09 09 09 0d 09 | 72 65 74 75 72 6e 20 28 |1;......|return (| |00000e40| 70 6f 73 29 3b 0d 7d 0d | 0d 2f 2f 5f 5f 5f 5f 5f |pos);.}.|.//_____| |00000e50| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00000e60| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00000e70| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00000e80| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00000e90| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 0d 0d 75 6e |________|____..un| |00000ea0| 73 69 67 6e 65 64 20 6c | 6f 6e 67 20 69 6e 74 20 |signed l|ong int | |00000eb0| 4e 53 74 72 69 6e 67 3a | 3a 72 69 67 68 74 70 6f |NString:|:rightpo| |00000ec0| 73 28 63 6f 6e 73 74 20 | 63 68 61 72 20 2a 73 29 |s(const |char *s)| |00000ed0| 20 63 6f 6e 73 74 0d 7b | 0d 09 75 6e 73 69 67 6e | const.{|..unsign| |00000ee0| 65 64 20 6c 6f 6e 67 20 | 69 6e 74 20 69 2c 20 70 |ed long |int i, p| |00000ef0| 6f 73 20 3d 20 30 2c 20 | 73 5f 6c 65 6e 20 3d 20 |os = 0, |s_len = | |00000f00| 73 74 72 6c 65 6e 28 73 | 29 3b 0d 09 0d 09 69 66 |strlen(s|);....if| |00000f10| 20 28 73 5f 6c 65 6e 20 | 3d 3d 20 30 29 0d 09 09 | (s_len |== 0)...| |00000f20| 72 65 74 75 72 6e 20 28 | 73 62 2d 3e 6c 65 6e 20 |return (|sb->len | |00000f30| 2b 20 31 29 3b 09 09 09 | 09 09 09 09 09 09 09 09 |+ 1);...|........| |00000f40| 09 09 09 09 2f 2f 20 61 | 6e 20 65 6d 70 74 79 20 |....// a|n empty | |00000f50| 73 75 62 73 74 72 69 6e | 67 20 63 61 6e 20 62 65 |substrin|g can be| |00000f60| 20 66 6f 75 6e 64 20 65 | 76 65 72 79 77 68 65 72 | found e|verywher| |00000f70| 65 0d 09 69 66 20 28 73 | 5f 6c 65 6e 20 3e 20 73 |e..if (s|_len > s| |00000f80| 62 2d 3e 6c 65 6e 29 0d | 09 09 72 65 74 75 72 6e |b->len).|..return| |00000f90| 20 28 30 29 3b 09 09 09 | 09 09 09 09 09 09 09 09 | (0);...|........| |00000fa0| 09 09 09 09 09 09 09 2f | 2f 20 73 75 62 73 74 72 |......./|/ substr| |00000fb0| 69 6e 67 20 6c 6f 6e 67 | 65 72 20 74 68 61 6e 20 |ing long|er than | |00000fc0| 65 6e 74 69 72 65 20 4e | 53 74 72 69 6e 67 0d 09 |entire N|String..| |00000fd0| 66 6f 72 20 28 69 3d 73 | 62 2d 3e 6c 65 6e 20 2d |for (i=s|b->len -| |00000fe0| 20 73 5f 6c 65 6e 20 2b | 20 31 3b 20 28 69 20 3e | s_len +| 1; (i >| |00000ff0| 20 30 29 20 26 26 20 28 | 70 6f 73 20 3d 3d 20 30 | 0) && (|pos == 0| |00001000| 29 3b 20 69 2d 2d 29 09 | 09 09 2f 2f 20 4e 6f 74 |); i--).|..// Not| |00001010| 65 3a 20 28 69 20 3e 3d | 20 30 29 20 69 73 20 61 |e: (i >=| 0) is a| |00001020| 6c 77 61 79 73 20 54 52 | 55 45 20 66 6f 72 20 75 |lways TR|UE for u| |00001030| 6e 73 69 67 6e 65 64 20 | 69 6e 74 2c 0d 09 09 69 |nsigned |int,...i| |00001040| 66 20 28 73 62 2d 3e 73 | 74 72 5b 69 2d 31 5d 20 |f (sb->s|tr[i-1] | |00001050| 3d 3d 20 73 5b 30 5d 29 | 09 09 09 09 09 09 09 09 |== s[0])|........| |00001060| 09 09 09 09 09 2f 2f 09 | 09 73 6f 20 74 68 65 20 |.....//.|.so the | |00001070| 72 61 6e 67 65 20 66 6f | 72 20 69 20 68 61 73 20 |range fo|r i has | |00001080| 62 65 65 6e 20 6f 66 66 | 73 65 74 20 62 79 20 2b |been off|set by +| |00001090| 31 0d 09 09 09 69 66 20 | 28 73 74 72 6e 63 6d 70 |1....if |(strncmp| |000010a0| 28 73 62 2d 3e 73 74 72 | 20 2b 20 69 2d 31 2c 20 |(sb->str| + i-1, | |000010b0| 73 2c 20 73 5f 6c 65 6e | 29 20 3d 3d 20 30 29 0d |s, s_len|) == 0).| |000010c0| 09 09 09 09 70 6f 73 20 | 3d 20 69 3b 0d 09 09 09 |....pos |= i;....| |000010d0| 0d 09 72 65 74 75 72 6e | 20 28 70 6f 73 29 3b 0d |..return| (pos);.| |000010e0| 7d 0d 0d 2f 2f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |}..//___|________| |000010f0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00001100| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00001110| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00001120| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00001130| 5f 5f 5f 5f 5f 5f 0d 0d | 75 6e 73 69 67 6e 65 64 |______..|unsigned| |00001140| 20 6c 6f 6e 67 20 69 6e | 74 20 4e 53 74 72 69 6e | long in|t NStrin| |00001150| 67 3a 3a 72 69 67 68 74 | 70 6f 73 28 63 6f 6e 73 |g::right|pos(cons| |00001160| 74 20 63 68 61 72 20 63 | 29 20 63 6f 6e 73 74 0d |t char c|) const.| |00001170| 7b 0d 09 75 6e 73 69 67 | 6e 65 64 20 6c 6f 6e 67 |{..unsig|ned long| |00001180| 20 69 6e 74 20 69 2c 20 | 70 6f 73 20 3d 20 30 3b | int i, |pos = 0;| |00001190| 0d 09 0d 09 69 66 20 28 | 73 62 2d 3e 6c 65 6e 20 |....if (|sb->len | |000011a0| 3d 3d 20 30 29 0d 09 09 | 72 65 74 75 72 6e 20 28 |== 0)...|return (| |000011b0| 30 29 3b 09 09 09 09 09 | 09 09 09 09 09 09 09 09 |0);.....|........| |000011c0| 09 09 09 09 09 2f 2f 20 | 6e 6f 20 63 68 61 72 61 |.....// |no chara| |000011d0| 63 74 65 72 20 63 61 6e | 20 62 65 20 66 6f 75 6e |cter can| be foun| |000011e0| 64 20 69 6e 20 61 6e 20 | 65 6d 70 74 79 20 73 74 |d in an |empty st| |000011f0| 72 69 6e 67 0d 09 09 0d | 09 66 6f 72 20 28 69 3d |ring....|.for (i=| |00001200| 73 62 2d 3e 6c 65 6e 3b | 20 28 69 20 3e 20 30 29 |sb->len;| (i > 0)| |00001210| 20 26 26 20 28 70 6f 73 | 20 3d 3d 20 30 29 3b 20 | && (pos| == 0); | |00001220| 69 2d 2d 29 09 09 09 09 | 09 09 09 09 2f 2f 20 4e |i--)....|....// N| |00001230| 6f 74 65 3a 20 28 69 20 | 3e 3d 20 30 29 20 69 73 |ote: (i |>= 0) is| |00001240| 20 61 6c 77 61 79 73 20 | 54 52 55 45 20 66 6f 72 | always |TRUE for| |00001250| 20 75 6e 73 69 67 6e 65 | 64 20 69 6e 74 2c 0d 09 | unsigne|d int,..| |00001260| 09 69 66 20 28 73 62 2d | 3e 73 74 72 5b 69 2d 31 |.if (sb-|>str[i-1| |00001270| 5d 20 3d 3d 20 63 29 09 | 09 09 09 09 09 09 09 09 |] == c).|........| |00001280| 09 09 09 09 09 2f 2f 09 | 09 73 6f 20 74 68 65 20 |.....//.|.so the | |00001290| 72 61 6e 67 65 20 66 6f | 72 20 69 20 68 61 73 20 |range fo|r i has | |000012a0| 62 65 65 6e 20 6f 66 66 | 73 65 74 20 62 79 20 2b |been off|set by +| |000012b0| 31 0d 09 09 09 70 6f 73 | 20 3d 20 69 3b 0d 09 09 |1....pos| = i;...| |000012c0| 09 0d 09 72 65 74 75 72 | 6e 20 28 70 6f 73 29 3b |...retur|n (pos);| |000012d0| 0d 7d 0d 0d 2f 2f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |.}..//__|________| |000012e0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |000012f0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00001300| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00001310| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00001320| 5f 5f 5f 5f 5f 5f 5f 0d | 0d 75 6e 73 69 67 6e 65 |_______.|.unsigne| |00001330| 64 20 6c 6f 6e 67 20 69 | 6e 74 20 4e 53 74 72 69 |d long i|nt NStri| |00001340| 6e 67 3a 3a 72 69 67 68 | 74 70 6f 73 28 63 6f 6e |ng::righ|tpos(con| |00001350| 73 74 20 41 6c 70 68 61 | 62 65 74 26 20 61 29 20 |st Alpha|bet& a) | |00001360| 63 6f 6e 73 74 0d 7b 0d | 09 75 6e 73 69 67 6e 65 |const.{.|.unsigne| |00001370| 64 20 6c 6f 6e 67 20 69 | 6e 74 20 69 2c 20 70 6f |d long i|nt i, po| |00001380| 73 20 3d 20 30 3b 0d 09 | 0d 09 69 66 20 28 73 62 |s = 0;..|..if (sb| |00001390| 2d 3e 6c 65 6e 20 3d 3d | 20 30 29 0d 09 09 72 65 |->len ==| 0)...re| |000013a0| 74 75 72 6e 20 28 30 29 | 3b 09 09 09 09 09 09 09 |turn (0)|;.......| |000013b0| 09 09 09 09 09 09 09 09 | 09 09 09 2f 2f 20 6e 6f |........|...// no| |000013c0| 20 63 68 61 72 61 63 74 | 65 72 20 63 61 6e 20 62 | charact|er can b| |000013d0| 65 20 66 6f 75 6e 64 20 | 69 6e 20 61 6e 20 65 6d |e found |in an em| |000013e0| 70 74 79 20 73 74 72 69 | 6e 67 0d 09 09 0d 09 66 |pty stri|ng.....f| |000013f0| 6f 72 20 28 69 3d 73 62 | 2d 3e 6c 65 6e 3b 20 28 |or (i=sb|->len; (| |00001400| 69 20 3e 20 30 29 20 26 | 26 20 28 70 6f 73 20 3d |i > 0) &|& (pos =| |00001410| 3d 20 30 29 3b 20 69 2d | 2d 29 09 09 09 09 09 09 |= 0); i-|-)......| |00001420| 09 09 2f 2f 20 4e 6f 74 | 65 3a 20 28 69 20 3e 3d |..// Not|e: (i >=| |00001430| 20 30 29 20 69 73 20 61 | 6c 77 61 79 73 20 54 52 | 0) is a|lways TR| |00001440| 55 45 20 66 6f 72 20 75 | 6e 73 69 67 6e 65 64 20 |UE for u|nsigned | |00001450| 69 6e 74 2c 0d 09 09 69 | 66 20 28 61 2e 63 6f 6e |int,...i|f (a.con| |00001460| 74 61 69 6e 73 28 73 62 | 2d 3e 73 74 72 5b 69 2d |tains(sb|->str[i-| |00001470| 31 5d 29 29 09 09 09 09 | 09 09 09 09 09 09 09 09 |1]))....|........| |00001480| 2f 2f 09 09 73 6f 20 74 | 68 65 20 72 61 6e 67 65 |//..so t|he range| |00001490| 20 66 6f 72 20 69 20 68 | 61 73 20 62 65 65 6e 20 | for i h|as been | |000014a0| 6f 66 66 73 65 74 20 62 | 79 20 2b 31 0d 09 09 09 |offset b|y +1....| |000014b0| 70 6f 73 20 3d 20 69 3b | 0d 09 09 09 0d 09 72 65 |pos = i;|......re| |000014c0| 74 75 72 6e 20 28 70 6f | 73 29 3b 0d 7d 0d 0d 2f |turn (po|s);.}../| |000014d0| 2f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |/_______|________| |000014e0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |000014f0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00001500| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00001510| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00001520| 5f 5f 0d 0d 4e 53 74 72 | 69 6e 67 20 4e 53 74 72 |__..NStr|ing NStr| |00001530| 69 6e 67 3a 3a 6c 65 66 | 74 6f 66 20 28 63 6f 6e |ing::lef|tof (con| |00001540| 73 74 20 63 68 61 72 20 | 2a 63 6f 6e 74 65 78 74 |st char |*context| |00001550| 29 20 63 6f 6e 73 74 0d | 7b 0d 09 75 6e 73 69 67 |) const.|{..unsig| |00001560| 6e 65 64 20 6c 6f 6e 67 | 20 69 6e 74 20 70 6f 73 |ned long| int pos| |00001570| 20 3d 20 6c 65 66 74 70 | 6f 73 28 63 6f 6e 74 65 | = leftp|os(conte| |00001580| 78 74 29 3b 0d 09 0d 09 | 69 66 20 28 70 6f 73 20 |xt);....|if (pos | |00001590| 3d 3d 20 30 29 0d 09 09 | 72 65 74 75 72 6e 20 28 |== 0)...|return (| |000015a0| 2a 74 68 69 73 29 3b 0d | 0d 09 72 65 74 75 72 6e |*this);.|..return| |000015b0| 20 28 74 6f 28 70 6f 73 | 2d 31 29 29 3b 0d 7d 0d | (to(pos|-1));.}.| |000015c0| 0d 2f 2f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |.//_____|________| |000015d0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |000015e0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |000015f0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00001600| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00001610| 5f 5f 5f 5f 0d 0d 4e 53 | 74 72 69 6e 67 20 4e 53 |____..NS|tring NS| |00001620| 74 72 69 6e 67 3a 3a 6c | 65 66 74 6f 66 20 28 63 |tring::l|eftof (c| |00001630| 6f 6e 73 74 20 63 68 61 | 72 20 63 6f 6e 74 65 78 |onst cha|r contex| |00001640| 74 29 20 63 6f 6e 73 74 | 0d 7b 0d 09 75 6e 73 69 |t) const|.{..unsi| |00001650| 67 6e 65 64 20 6c 6f 6e | 67 20 69 6e 74 20 70 6f |gned lon|g int po| |00001660| 73 20 3d 20 6c 65 66 74 | 70 6f 73 28 63 6f 6e 74 |s = left|pos(cont| |00001670| 65 78 74 29 3b 0d 09 0d | 09 69 66 20 28 70 6f 73 |ext);...|.if (pos| |00001680| 20 3d 3d 20 30 29 0d 09 | 09 72 65 74 75 72 6e 20 | == 0)..|.return | |00001690| 28 2a 74 68 69 73 29 3b | 0d 0d 09 72 65 74 75 72 |(*this);|...retur| |000016a0| 6e 20 28 74 6f 28 70 6f | 73 2d 31 29 29 3b 0d 7d |n (to(po|s-1));.}| |000016b0| 0d 0d 2f 2f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |..//____|________| |000016c0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |000016d0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |000016e0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |000016f0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00001700| 5f 5f 5f 5f 5f 0d 0d 4e | 53 74 72 69 6e 67 20 4e |_____..N|String N| |00001710| 53 74 72 69 6e 67 3a 3a | 6c 65 66 74 6f 66 20 28 |String::|leftof (| |00001720| 63 6f 6e 73 74 20 4e 53 | 74 72 69 6e 67 26 20 63 |const NS|tring& c| |00001730| 6f 6e 74 65 78 74 29 20 | 63 6f 6e 73 74 0d 7b 0d |ontext) |const.{.| |00001740| 09 75 6e 73 69 67 6e 65 | 64 20 6c 6f 6e 67 20 69 |.unsigne|d long i| |00001750| 6e 74 20 70 6f 73 20 3d | 20 6c 65 66 74 70 6f 73 |nt pos =| leftpos| |00001760| 28 63 6f 6e 74 65 78 74 | 29 3b 0d 09 0d 09 69 66 |(context|);....if| |00001770| 20 28 70 6f 73 20 3d 3d | 20 30 29 0d 09 09 72 65 | (pos ==| 0)...re| |00001780| 74 75 72 6e 20 28 2a 74 | 68 69 73 29 3b 0d 0d 09 |turn (*t|his);...| |00001790| 72 65 74 75 72 6e 20 28 | 74 6f 28 70 6f 73 2d 31 |return (|to(pos-1| |000017a0| 29 29 3b 0d 7d 0d 0d 2f | 2f 5f 5f 5f 5f 5f 5f 5f |));.}../|/_______| |000017b0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |000017c0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |000017d0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |000017e0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |000017f0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 0d 0d 4e 53 74 72 |________|__..NStr| |00001800| 69 6e 67 20 4e 53 74 72 | 69 6e 67 3a 3a 6c 65 66 |ing NStr|ing::lef| |00001810| 74 6f 66 20 28 63 6f 6e | 73 74 20 41 6c 70 68 61 |tof (con|st Alpha| |00001820| 62 65 74 26 20 63 6f 6e | 74 65 78 74 29 20 63 6f |bet& con|text) co| |00001830| 6e 73 74 0d 7b 0d 09 75 | 6e 73 69 67 6e 65 64 20 |nst.{..u|nsigned | |00001840| 6c 6f 6e 67 20 69 6e 74 | 20 70 6f 73 20 3d 20 6c |long int| pos = l| |00001850| 65 66 74 70 6f 73 28 63 | 6f 6e 74 65 78 74 29 3b |eftpos(c|ontext);| |00001860| 0d 09 0d 09 69 66 20 28 | 70 6f 73 20 3d 3d 20 30 |....if (|pos == 0| |00001870| 29 0d 09 09 72 65 74 75 | 72 6e 20 28 2a 74 68 69 |)...retu|rn (*thi| |00001880| 73 29 3b 0d 0d 09 72 65 | 74 75 72 6e 20 28 74 6f |s);...re|turn (to| |00001890| 28 70 6f 73 2d 31 29 29 | 3b 0d 7d 0d 0d 2f 2f 5f |(pos-1))|;.}..//_| |000018a0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |000018b0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |000018c0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |000018d0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |000018e0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |000018f0| 0d 0d 4e 53 74 72 69 6e | 67 20 4e 53 74 72 69 6e |..NStrin|g NStrin| |00001900| 67 3a 3a 61 74 6c 65 66 | 74 20 28 63 6f 6e 73 74 |g::atlef|t (const| |00001910| 20 63 68 61 72 20 2a 63 | 6f 6e 74 65 78 74 29 20 | char *c|ontext) | |00001920| 63 6f 6e 73 74 0d 7b 0d | 09 75 6e 73 69 67 6e 65 |const.{.|.unsigne| |00001930| 64 20 6c 6f 6e 67 20 69 | 6e 74 20 70 6f 73 20 3d |d long i|nt pos =| |00001940| 20 6c 65 66 74 70 6f 73 | 28 63 6f 6e 74 65 78 74 | leftpos|(context| |00001950| 29 3b 0d 09 0d 09 69 66 | 20 28 70 6f 73 20 3d 3d |);....if| (pos ==| |00001960| 20 30 29 0d 09 09 72 65 | 74 75 72 6e 20 4e 53 74 | 0)...re|turn NSt| |00001970| 72 69 6e 67 28 29 3b 0d | 09 0d 09 72 65 74 75 72 |ring();.|...retur| |00001980| 6e 20 28 66 72 6f 6d 28 | 70 6f 73 29 29 3b 0d 7d |n (from(|pos));.}| |00001990| 0d 0d 2f 2f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |..//____|________| |000019a0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |000019b0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |000019c0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |000019d0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |000019e0| 5f 5f 5f 5f 5f 0d 0d 4e | 53 74 72 69 6e 67 20 4e |_____..N|String N| |000019f0| 53 74 72 69 6e 67 3a 3a | 61 74 6c 65 66 74 20 28 |String::|atleft (| |00001a00| 63 6f 6e 73 74 20 63 68 | 61 72 20 63 6f 6e 74 65 |const ch|ar conte| |00001a10| 78 74 29 20 63 6f 6e 73 | 74 0d 7b 0d 09 75 6e 73 |xt) cons|t.{..uns| |00001a20| 69 67 6e 65 64 20 6c 6f | 6e 67 20 69 6e 74 20 70 |igned lo|ng int p| |00001a30| 6f 73 20 3d 20 6c 65 66 | 74 70 6f 73 28 63 6f 6e |os = lef|tpos(con| |00001a40| 74 65 78 74 29 3b 0d 09 | 0d 09 69 66 20 28 70 6f |text);..|..if (po| |00001a50| 73 20 3d 3d 20 30 29 0d | 09 09 72 65 74 75 72 6e |s == 0).|..return| |00001a60| 20 4e 53 74 72 69 6e 67 | 28 29 3b 0d 09 0d 09 72 | NString|();....r| |00001a70| 65 74 75 72 6e 20 28 66 | 72 6f 6d 28 70 6f 73 29 |eturn (f|rom(pos)| |00001a80| 29 3b 0d 7d 0d 0d 2f 2f | 5f 5f 5f 5f 5f 5f 5f 5f |);.}..//|________| |00001a90| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00001aa0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00001ab0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00001ac0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00001ad0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 0d 0d 4e 53 74 72 69 |________|_..NStri| |00001ae0| 6e 67 20 4e 53 74 72 69 | 6e 67 3a 3a 61 74 6c 65 |ng NStri|ng::atle| |00001af0| 66 74 20 28 63 6f 6e 73 | 74 20 4e 53 74 72 69 6e |ft (cons|t NStrin| |00001b00| 67 26 20 63 6f 6e 74 65 | 78 74 29 20 63 6f 6e 73 |g& conte|xt) cons| |00001b10| 74 0d 7b 0d 09 75 6e 73 | 69 67 6e 65 64 20 6c 6f |t.{..uns|igned lo| |00001b20| 6e 67 20 69 6e 74 20 70 | 6f 73 20 3d 20 6c 65 66 |ng int p|os = lef| |00001b30| 74 70 6f 73 28 63 6f 6e | 74 65 78 74 29 3b 0d 09 |tpos(con|text);..| |00001b40| 0d 09 69 66 20 28 70 6f | 73 20 3d 3d 20 30 29 0d |..if (po|s == 0).| |00001b50| 09 09 72 65 74 75 72 6e | 20 4e 53 74 72 69 6e 67 |..return| NString| |00001b60| 28 29 3b 0d 09 0d 09 72 | 65 74 75 72 6e 20 28 66 |();....r|eturn (f| |00001b70| 72 6f 6d 28 70 6f 73 29 | 29 3b 0d 7d 0d 0d 2f 2f |rom(pos)|);.}..//| |00001b80| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00001b90| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00001ba0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00001bb0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00001bc0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00001bd0| 5f 0d 0d 4e 53 74 72 69 | 6e 67 20 4e 53 74 72 69 |_..NStri|ng NStri| |00001be0| 6e 67 3a 3a 61 74 6c 65 | 66 74 20 28 63 6f 6e 73 |ng::atle|ft (cons| |00001bf0| 74 20 41 6c 70 68 61 62 | 65 74 26 20 63 6f 6e 74 |t Alphab|et& cont| |00001c00| 65 78 74 29 20 63 6f 6e | 73 74 0d 7b 0d 09 75 6e |ext) con|st.{..un| |00001c10| 73 69 67 6e 65 64 20 6c | 6f 6e 67 20 69 6e 74 20 |signed l|ong int | |00001c20| 70 6f 73 20 3d 20 6c 65 | 66 74 70 6f 73 28 63 6f |pos = le|ftpos(co| |00001c30| 6e 74 65 78 74 29 3b 0d | 09 0d 09 69 66 20 28 70 |ntext);.|...if (p| |00001c40| 6f 73 20 3d 3d 20 30 29 | 0d 09 09 72 65 74 75 72 |os == 0)|...retur| |00001c50| 6e 20 4e 53 74 72 69 6e | 67 28 29 3b 0d 09 0d 09 |n NStrin|g();....| |00001c60| 72 65 74 75 72 6e 20 28 | 66 72 6f 6d 28 70 6f 73 |return (|from(pos| |00001c70| 29 29 3b 0d 7d 0d 0d 2f | 2f 5f 5f 5f 5f 5f 5f 5f |));.}../|/_______| |00001c80| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00001c90| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00001ca0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00001cb0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00001cc0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 0d 0d 4e 53 74 72 |________|__..NStr| |00001cd0| 69 6e 67 20 4e 53 74 72 | 69 6e 67 3a 3a 74 6f 6c |ing NStr|ing::tol| |00001ce0| 65 66 74 20 28 63 6f 6e | 73 74 20 63 68 61 72 20 |eft (con|st char | |00001cf0| 2a 63 6f 6e 74 65 78 74 | 29 20 63 6f 6e 73 74 0d |*context|) const.| |00001d00| 7b 0d 09 75 6e 73 69 67 | 6e 65 64 20 6c 6f 6e 67 |{..unsig|ned long| |00001d10| 20 69 6e 74 20 70 6f 73 | 20 3d 20 6c 65 66 74 70 | int pos| = leftp| |00001d20| 6f 73 28 63 6f 6e 74 65 | 78 74 29 3b 0d 09 0d 09 |os(conte|xt);....| |00001d30| 69 66 20 28 70 6f 73 20 | 3d 3d 20 30 29 0d 09 09 |if (pos |== 0)...| |00001d40| 72 65 74 75 72 6e 20 28 | 2a 74 68 69 73 29 3b 0d |return (|*this);.| |00001d50| 09 09 0d 09 72 65 74 75 | 72 6e 20 28 74 6f 28 70 |....retu|rn (to(p| |00001d60| 6f 73 20 2b 20 73 74 72 | 6c 65 6e 28 63 6f 6e 74 |os + str|len(cont| |00001d70| 65 78 74 29 20 2d 20 31 | 29 29 3b 0d 7d 0d 0d 2f |ext) - 1|));.}../| |00001d80| 2f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |/_______|________| |00001d90| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00001da0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00001db0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00001dc0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00001dd0| 5f 5f 0d 0d 4e 53 74 72 | 69 6e 67 20 4e 53 74 72 |__..NStr|ing NStr| |00001de0| 69 6e 67 3a 3a 74 6f 6c | 65 66 74 20 28 63 6f 6e |ing::tol|eft (con| |00001df0| 73 74 20 63 68 61 72 20 | 63 6f 6e 74 65 78 74 29 |st char |context)| |00001e00| 20 63 6f 6e 73 74 0d 7b | 0d 09 75 6e 73 69 67 6e | const.{|..unsign| |00001e10| 65 64 20 6c 6f 6e 67 20 | 69 6e 74 20 70 6f 73 20 |ed long |int pos | |00001e20| 3d 20 6c 65 66 74 70 6f | 73 28 63 6f 6e 74 65 78 |= leftpo|s(contex| |00001e30| 74 29 3b 0d 09 0d 09 69 | 66 20 28 70 6f 73 20 3d |t);....i|f (pos =| |00001e40| 3d 20 30 29 0d 09 09 72 | 65 74 75 72 6e 20 28 2a |= 0)...r|eturn (*| |00001e50| 74 68 69 73 29 3b 0d 09 | 09 0d 09 72 65 74 75 72 |this);..|...retur| |00001e60| 6e 20 28 74 6f 28 70 6f | 73 29 29 3b 0d 7d 0d 0d |n (to(po|s));.}..| |00001e70| 2f 2f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |//______|________| |00001e80| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00001e90| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00001ea0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00001eb0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00001ec0| 5f 5f 5f 0d 0d 4e 53 74 | 72 69 6e 67 20 4e 53 74 |___..NSt|ring NSt| |00001ed0| 72 69 6e 67 3a 3a 74 6f | 6c 65 66 74 20 28 63 6f |ring::to|left (co| |00001ee0| 6e 73 74 20 4e 53 74 72 | 69 6e 67 26 20 63 6f 6e |nst NStr|ing& con| |00001ef0| 74 65 78 74 29 20 63 6f | 6e 73 74 0d 7b 0d 09 75 |text) co|nst.{..u| |00001f00| 6e 73 69 67 6e 65 64 20 | 6c 6f 6e 67 20 69 6e 74 |nsigned |long int| |00001f10| 20 70 6f 73 20 3d 20 6c | 65 66 74 70 6f 73 28 63 | pos = l|eftpos(c| |00001f20| 6f 6e 74 65 78 74 29 3b | 0d 09 0d 09 69 66 20 28 |ontext);|....if (| |00001f30| 70 6f 73 20 3d 3d 20 30 | 29 0d 09 09 72 65 74 75 |pos == 0|)...retu| |00001f40| 72 6e 20 28 2a 74 68 69 | 73 29 3b 0d 09 09 0d 09 |rn (*thi|s);.....| |00001f50| 72 65 74 75 72 6e 20 28 | 74 6f 28 70 6f 73 20 2b |return (|to(pos +| |00001f60| 20 63 6f 6e 74 65 78 74 | 2e 73 62 2d 3e 6c 65 6e | context|.sb->len| |00001f70| 20 2d 20 31 29 29 3b 0d | 7d 0d 0d 2f 2f 5f 5f 5f | - 1));.|}..//___| |00001f80| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00001f90| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00001fa0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00001fb0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00001fc0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 0d 0d |________|______..| |00001fd0| 4e 53 74 72 69 6e 67 20 | 4e 53 74 72 69 6e 67 3a |NString |NString:| |00001fe0| 3a 74 6f 6c 65 66 74 20 | 28 63 6f 6e 73 74 20 41 |:toleft |(const A| |00001ff0| 6c 70 68 61 62 65 74 26 | 20 63 6f 6e 74 65 78 74 |lphabet&| context| |00002000| 29 20 63 6f 6e 73 74 0d | 7b 0d 09 75 6e 73 69 67 |) const.|{..unsig| |00002010| 6e 65 64 20 6c 6f 6e 67 | 20 69 6e 74 20 70 6f 73 |ned long| int pos| |00002020| 20 3d 20 6c 65 66 74 70 | 6f 73 28 63 6f 6e 74 65 | = leftp|os(conte| |00002030| 78 74 29 3b 0d 09 0d 09 | 69 66 20 28 70 6f 73 20 |xt);....|if (pos | |00002040| 3d 3d 20 30 29 0d 09 09 | 72 65 74 75 72 6e 20 28 |== 0)...|return (| |00002050| 2a 74 68 69 73 29 3b 0d | 09 0d 09 72 65 74 75 72 |*this);.|...retur| |00002060| 6e 20 28 74 6f 28 70 6f | 73 29 29 3b 09 09 09 09 |n (to(po|s));....| |00002070| 2f 2f 20 74 68 65 20 6c | 65 6e 67 74 68 20 6f 66 |// the l|ength of| |00002080| 20 61 6e 20 61 6c 70 68 | 61 62 65 74 2d 63 6f 6e | an alph|abet-con| |00002090| 74 65 78 74 20 69 73 20 | 61 6c 77 61 79 73 20 31 |text is |always 1| |000020a0| 20 6c 65 74 74 65 72 0d | 7d 0d 0d 2f 2f 5f 5f 5f | letter.|}..//___| |000020b0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |000020c0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |000020d0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |000020e0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |000020f0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 0d 0d |________|______..| |00002100| 4e 53 74 72 69 6e 67 20 | 4e 53 74 72 69 6e 67 3a |NString |NString:| |00002110| 3a 6c 65 66 74 63 75 74 | 20 28 63 6f 6e 73 74 20 |:leftcut| (const | |00002120| 63 68 61 72 20 2a 63 6f | 6e 74 65 78 74 29 20 63 |char *co|ntext) c| |00002130| 6f 6e 73 74 0d 7b 0d 09 | 75 6e 73 69 67 6e 65 64 |onst.{..|unsigned| |00002140| 20 6c 6f 6e 67 20 69 6e | 74 20 70 6f 73 20 3d 20 | long in|t pos = | |00002150| 6c 65 66 74 70 6f 73 28 | 63 6f 6e 74 65 78 74 29 |leftpos(|context)| |00002160| 3b 0d 09 0d 09 69 66 20 | 28 70 6f 73 20 3d 3d 20 |;....if |(pos == | |00002170| 30 29 0d 09 09 72 65 74 | 75 72 6e 20 4e 53 74 72 |0)...ret|urn NStr| |00002180| 69 6e 67 28 29 3b 0d 09 | 0d 09 72 65 74 75 72 6e |ing();..|..return| |00002190| 20 28 66 72 6f 6d 28 70 | 6f 73 20 2b 20 73 74 72 | (from(p|os + str| |000021a0| 6c 65 6e 28 63 6f 6e 74 | 65 78 74 29 29 29 3b 0d |len(cont|ext)));.| |000021b0| 7d 0d 0d 2f 2f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |}..//___|________| |000021c0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |000021d0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |000021e0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |000021f0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00002200| 5f 5f 5f 5f 5f 5f 0d 0d | 4e 53 74 72 69 6e 67 20 |______..|NString | |00002210| 4e 53 74 72 69 6e 67 3a | 3a 6c 65 66 74 63 75 74 |NString:|:leftcut| |00002220| 20 28 63 6f 6e 73 74 20 | 63 68 61 72 20 63 6f 6e | (const |char con| |00002230| 74 65 78 74 29 20 63 6f | 6e 73 74 0d 7b 0d 09 75 |text) co|nst.{..u| |00002240| 6e 73 69 67 6e 65 64 20 | 6c 6f 6e 67 20 69 6e 74 |nsigned |long int| |00002250| 20 70 6f 73 20 3d 20 6c | 65 66 74 70 6f 73 28 63 | pos = l|eftpos(c| |00002260| 6f 6e 74 65 78 74 29 3b | 0d 09 0d 09 69 66 20 28 |ontext);|....if (| |00002270| 70 6f 73 20 3d 3d 20 30 | 29 0d 09 09 72 65 74 75 |pos == 0|)...retu| |00002280| 72 6e 20 4e 53 74 72 69 | 6e 67 28 29 3b 0d 09 0d |rn NStri|ng();...| |00002290| 09 72 65 74 75 72 6e 20 | 28 66 72 6f 6d 28 70 6f |.return |(from(po| |000022a0| 73 20 2b 20 31 29 29 3b | 0d 7d 0d 0d 2f 2f 5f 5f |s + 1));|.}..//__| |000022b0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |000022c0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |000022d0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |000022e0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |000022f0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 0d |________|_______.| |00002300| 0d 4e 53 74 72 69 6e 67 | 20 4e 53 74 72 69 6e 67 |.NString| NString| |00002310| 3a 3a 6c 65 66 74 63 75 | 74 20 28 63 6f 6e 73 74 |::leftcu|t (const| |00002320| 20 4e 53 74 72 69 6e 67 | 26 20 63 6f 6e 74 65 78 | NString|& contex| |00002330| 74 29 20 63 6f 6e 73 74 | 0d 7b 0d 09 75 6e 73 69 |t) const|.{..unsi| |00002340| 67 6e 65 64 20 6c 6f 6e | 67 20 69 6e 74 20 70 6f |gned lon|g int po| |00002350| 73 20 3d 20 6c 65 66 74 | 70 6f 73 28 63 6f 6e 74 |s = left|pos(cont| |00002360| 65 78 74 29 3b 0d 09 0d | 09 69 66 20 28 70 6f 73 |ext);...|.if (pos| |00002370| 20 3d 3d 20 30 29 0d 09 | 09 72 65 74 75 72 6e 20 | == 0)..|.return | |00002380| 4e 53 74 72 69 6e 67 28 | 29 3b 0d 09 0d 09 72 65 |NString(|);....re| |00002390| 74 75 72 6e 20 28 66 72 | 6f 6d 28 70 6f 73 20 2b |turn (fr|om(pos +| |000023a0| 20 63 6f 6e 74 65 78 74 | 2e 73 62 2d 3e 6c 65 6e | context|.sb->len| |000023b0| 29 29 3b 0d 7d 0d 0d 2f | 2f 5f 5f 5f 5f 5f 5f 5f |));.}../|/_______| |000023c0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |000023d0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |000023e0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |000023f0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00002400| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 0d 0d 4e 53 74 72 |________|__..NStr| |00002410| 69 6e 67 20 4e 53 74 72 | 69 6e 67 3a 3a 6c 65 66 |ing NStr|ing::lef| |00002420| 74 63 75 74 20 28 63 6f | 6e 73 74 20 41 6c 70 68 |tcut (co|nst Alph| |00002430| 61 62 65 74 26 20 63 6f | 6e 74 65 78 74 29 20 63 |abet& co|ntext) c| |00002440| 6f 6e 73 74 0d 7b 0d 09 | 75 6e 73 69 67 6e 65 64 |onst.{..|unsigned| |00002450| 20 6c 6f 6e 67 20 69 6e | 74 20 70 6f 73 20 3d 20 | long in|t pos = | |00002460| 6c 65 66 74 70 6f 73 28 | 63 6f 6e 74 65 78 74 29 |leftpos(|context)| |00002470| 3b 0d 09 0d 09 69 66 20 | 28 70 6f 73 20 3d 3d 20 |;....if |(pos == | |00002480| 30 29 0d 09 09 72 65 74 | 75 72 6e 20 4e 53 74 72 |0)...ret|urn NStr| |00002490| 69 6e 67 28 29 3b 0d 09 | 0d 09 72 65 74 75 72 6e |ing();..|..return| |000024a0| 20 28 66 72 6f 6d 28 70 | 6f 73 20 2b 20 31 29 29 | (from(p|os + 1))| |000024b0| 3b 0d 7d 0d 0d 2f 2f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |;.}..//_|________| |000024c0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |000024d0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |000024e0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |000024f0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00002500| 5f 5f 5f 5f 5f 5f 5f 5f | 0d 0d 4e 53 74 72 69 6e |________|..NStrin| |00002510| 67 20 4e 53 74 72 69 6e | 67 3a 3a 72 69 67 68 74 |g NStrin|g::right| |00002520| 6f 66 20 28 63 6f 6e 73 | 74 20 63 68 61 72 20 2a |of (cons|t char *| |00002530| 63 6f 6e 74 65 78 74 29 | 20 63 6f 6e 73 74 0d 7b |context)| const.{| |00002540| 0d 09 75 6e 73 69 67 6e | 65 64 20 6c 6f 6e 67 20 |..unsign|ed long | |00002550| 69 6e 74 20 70 6f 73 20 | 3d 20 72 69 67 68 74 70 |int pos |= rightp| |00002560| 6f 73 28 63 6f 6e 74 65 | 78 74 29 3b 0d 09 0d 09 |os(conte|xt);....| |00002570| 69 66 20 28 70 6f 73 20 | 3d 3d 20 30 29 0d 09 09 |if (pos |== 0)...| |00002580| 72 65 74 75 72 6e 20 28 | 2a 74 68 69 73 29 3b 0d |return (|*this);.| |00002590| 0d 09 72 65 74 75 72 6e | 20 28 66 72 6f 6d 28 70 |..return| (from(p| |000025a0| 6f 73 20 2b 20 73 74 72 | 6c 65 6e 28 63 6f 6e 74 |os + str|len(cont| |000025b0| 65 78 74 29 29 29 3b 0d | 7d 0d 0d 2f 2f 5f 5f 5f |ext)));.|}..//___| |000025c0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |000025d0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |000025e0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |000025f0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00002600| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 0d 0d |________|______..| |00002610| 4e 53 74 72 69 6e 67 20 | 4e 53 74 72 69 6e 67 3a |NString |NString:| |00002620| 3a 72 69 67 68 74 6f 66 | 20 28 63 6f 6e 73 74 20 |:rightof| (const | |00002630| 63 68 61 72 20 63 6f 6e | 74 65 78 74 29 20 63 6f |char con|text) co| |00002640| 6e 73 74 0d 7b 0d 09 75 | 6e 73 69 67 6e 65 64 20 |nst.{..u|nsigned | |00002650| 6c 6f 6e 67 20 69 6e 74 | 20 70 6f 73 20 3d 20 72 |long int| pos = r| |00002660| 69 67 68 74 70 6f 73 28 | 63 6f 6e 74 65 78 74 29 |ightpos(|context)| |00002670| 3b 0d 09 0d 09 69 66 20 | 28 70 6f 73 20 3d 3d 20 |;....if |(pos == | |00002680| 30 29 0d 09 09 72 65 74 | 75 72 6e 20 28 2a 74 68 |0)...ret|urn (*th| |00002690| 69 73 29 3b 0d 0d 09 72 | 65 74 75 72 6e 20 28 66 |is);...r|eturn (f| |000026a0| 72 6f 6d 28 70 6f 73 20 | 2b 20 31 29 29 3b 0d 7d |rom(pos |+ 1));.}| |000026b0| 0d 0d 2f 2f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |..//____|________| |000026c0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |000026d0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |000026e0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |000026f0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00002700| 5f 5f 5f 5f 5f 0d 0d 4e | 53 74 72 69 6e 67 20 4e |_____..N|String N| |00002710| 53 74 72 69 6e 67 3a 3a | 72 69 67 68 74 6f 66 20 |String::|rightof | |00002720| 28 63 6f 6e 73 74 20 4e | 53 74 72 69 6e 67 26 20 |(const N|String& | |00002730| 63 6f 6e 74 65 78 74 29 | 20 63 6f 6e 73 74 0d 7b |context)| const.{| |00002740| 0d 09 75 6e 73 69 67 6e | 65 64 20 6c 6f 6e 67 20 |..unsign|ed long | |00002750| 69 6e 74 20 70 6f 73 20 | 3d 20 72 69 67 68 74 70 |int pos |= rightp| |00002760| 6f 73 28 63 6f 6e 74 65 | 78 74 29 3b 0d 09 0d 09 |os(conte|xt);....| |00002770| 69 66 20 28 70 6f 73 20 | 3d 3d 20 30 29 0d 09 09 |if (pos |== 0)...| |00002780| 72 65 74 75 72 6e 20 28 | 2a 74 68 69 73 29 3b 0d |return (|*this);.| |00002790| 0d 09 72 65 74 75 72 6e | 20 28 66 72 6f 6d 28 70 |..return| (from(p| |000027a0| 6f 73 20 2b 20 63 6f 6e | 74 65 78 74 2e 73 62 2d |os + con|text.sb-| |000027b0| 3e 6c 65 6e 29 29 3b 0d | 7d 0d 0d 2f 2f 5f 5f 5f |>len));.|}..//___| |000027c0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |000027d0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |000027e0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |000027f0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00002800| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 0d 0d |________|______..| |00002810| 4e 53 74 72 69 6e 67 20 | 4e 53 74 72 69 6e 67 3a |NString |NString:| |00002820| 3a 72 69 67 68 74 6f 66 | 20 28 63 6f 6e 73 74 20 |:rightof| (const | |00002830| 41 6c 70 68 61 62 65 74 | 26 20 63 6f 6e 74 65 78 |Alphabet|& contex| |00002840| 74 29 20 63 6f 6e 73 74 | 0d 7b 0d 09 75 6e 73 69 |t) const|.{..unsi| |00002850| 67 6e 65 64 20 6c 6f 6e | 67 20 69 6e 74 20 70 6f |gned lon|g int po| |00002860| 73 20 3d 20 72 69 67 68 | 74 70 6f 73 28 63 6f 6e |s = righ|tpos(con| |00002870| 74 65 78 74 29 3b 0d 09 | 0d 09 69 66 20 28 70 6f |text);..|..if (po| |00002880| 73 20 3d 3d 20 30 29 0d | 09 09 72 65 74 75 72 6e |s == 0).|..return| |00002890| 20 28 2a 74 68 69 73 29 | 3b 0d 0d 09 72 65 74 75 | (*this)|;...retu| |000028a0| 72 6e 20 28 66 72 6f 6d | 28 70 6f 73 20 2b 20 31 |rn (from|(pos + 1| |000028b0| 29 29 3b 0d 7d 0d 0d 2f | 2f 5f 5f 5f 5f 5f 5f 5f |));.}../|/_______| |000028c0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |000028d0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |000028e0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |000028f0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00002900| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 0d 0d 4e 53 74 72 |________|__..NStr| |00002910| 69 6e 67 20 4e 53 74 72 | 69 6e 67 3a 3a 61 74 72 |ing NStr|ing::atr| |00002920| 69 67 68 74 20 28 63 6f | 6e 73 74 20 63 68 61 72 |ight (co|nst char| |00002930| 20 2a 63 6f 6e 74 65 78 | 74 29 20 63 6f 6e 73 74 | *contex|t) const| |00002940| 0d 7b 0d 09 75 6e 73 69 | 67 6e 65 64 20 6c 6f 6e |.{..unsi|gned lon| |00002950| 67 20 69 6e 74 20 70 6f | 73 20 3d 20 72 69 67 68 |g int po|s = righ| |00002960| 74 70 6f 73 28 63 6f 6e | 74 65 78 74 29 3b 0d 09 |tpos(con|text);..| |00002970| 0d 09 69 66 20 28 70 6f | 73 20 3d 3d 20 30 29 0d |..if (po|s == 0).| |00002980| 09 09 72 65 74 75 72 6e | 20 28 2a 74 68 69 73 29 |..return| (*this)| |00002990| 3b 0d 09 0d 09 72 65 74 | 75 72 6e 20 28 66 72 6f |;....ret|urn (fro| |000029a0| 6d 28 70 6f 73 29 29 3b | 0d 7d 0d 0d 2f 2f 5f 5f |m(pos));|.}..//__| |000029b0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |000029c0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |000029d0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |000029e0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |000029f0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 0d |________|_______.| |00002a00| 0d 4e 53 74 72 69 6e 67 | 20 4e 53 74 72 69 6e 67 |.NString| NString| |00002a10| 3a 3a 61 74 72 69 67 68 | 74 20 28 63 6f 6e 73 74 |::atrigh|t (const| |00002a20| 20 63 68 61 72 20 63 6f | 6e 74 65 78 74 29 20 63 | char co|ntext) c| |00002a30| 6f 6e 73 74 0d 7b 0d 09 | 75 6e 73 69 67 6e 65 64 |onst.{..|unsigned| |00002a40| 20 6c 6f 6e 67 20 69 6e | 74 20 70 6f 73 20 3d 20 | long in|t pos = | |00002a50| 72 69 67 68 74 70 6f 73 | 28 63 6f 6e 74 65 78 74 |rightpos|(context| |00002a60| 29 3b 0d 09 0d 09 69 66 | 20 28 70 6f 73 20 3d 3d |);....if| (pos ==| |00002a70| 20 30 29 0d 09 09 72 65 | 74 75 72 6e 20 28 2a 74 | 0)...re|turn (*t| |00002a80| 68 69 73 29 3b 0d 09 0d | 09 72 65 74 75 72 6e 20 |his);...|.return | |00002a90| 28 66 72 6f 6d 28 70 6f | 73 29 29 3b 0d 7d 0d 0d |(from(po|s));.}..| |00002aa0| 2f 2f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |//______|________| |00002ab0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00002ac0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00002ad0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00002ae0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00002af0| 5f 5f 5f 0d 0d 4e 53 74 | 72 69 6e 67 20 4e 53 74 |___..NSt|ring NSt| |00002b00| 72 69 6e 67 3a 3a 61 74 | 72 69 67 68 74 20 28 63 |ring::at|right (c| |00002b10| 6f 6e 73 74 20 4e 53 74 | 72 69 6e 67 26 20 63 6f |onst NSt|ring& co| |00002b20| 6e 74 65 78 74 29 20 63 | 6f 6e 73 74 0d 7b 0d 09 |ntext) c|onst.{..| |00002b30| 75 6e 73 69 67 6e 65 64 | 20 6c 6f 6e 67 20 69 6e |unsigned| long in| |00002b40| 74 20 70 6f 73 20 3d 20 | 72 69 67 68 74 70 6f 73 |t pos = |rightpos| |00002b50| 28 63 6f 6e 74 65 78 74 | 29 3b 0d 09 0d 09 69 66 |(context|);....if| |00002b60| 20 28 70 6f 73 20 3d 3d | 20 30 29 0d 09 09 72 65 | (pos ==| 0)...re| |00002b70| 74 75 72 6e 20 28 2a 74 | 68 69 73 29 3b 0d 09 0d |turn (*t|his);...| |00002b80| 09 72 65 74 75 72 6e 20 | 28 66 72 6f 6d 28 70 6f |.return |(from(po| |00002b90| 73 29 29 3b 0d 7d 0d 0d | 2f 2f 5f 5f 5f 5f 5f 5f |s));.}..|//______| |00002ba0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00002bb0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00002bc0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00002bd0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00002be0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 0d 0d 4e 53 74 |________|___..NSt| |00002bf0| 72 69 6e 67 20 4e 53 74 | 72 69 6e 67 3a 3a 61 74 |ring NSt|ring::at| |00002c00| 72 69 67 68 74 20 28 63 | 6f 6e 73 74 20 41 6c 70 |right (c|onst Alp| |00002c10| 68 61 62 65 74 26 20 63 | 6f 6e 74 65 78 74 29 20 |habet& c|ontext) | |00002c20| 63 6f 6e 73 74 0d 7b 0d | 09 75 6e 73 69 67 6e 65 |const.{.|.unsigne| |00002c30| 64 20 6c 6f 6e 67 20 69 | 6e 74 20 70 6f 73 20 3d |d long i|nt pos =| |00002c40| 20 72 69 67 68 74 70 6f | 73 28 63 6f 6e 74 65 78 | rightpo|s(contex| |00002c50| 74 29 3b 0d 09 0d 09 69 | 66 20 28 70 6f 73 20 3d |t);....i|f (pos =| |00002c60| 3d 20 30 29 0d 09 09 72 | 65 74 75 72 6e 20 28 2a |= 0)...r|eturn (*| |00002c70| 74 68 69 73 29 3b 0d 09 | 0d 09 72 65 74 75 72 6e |this);..|..return| |00002c80| 20 28 66 72 6f 6d 28 70 | 6f 73 29 29 3b 0d 7d 0d | (from(p|os));.}.| |00002c90| 0d 2f 2f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |.//_____|________| |00002ca0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00002cb0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00002cc0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00002cd0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00002ce0| 5f 5f 5f 5f 0d 0d 4e 53 | 74 72 69 6e 67 20 4e 53 |____..NS|tring NS| |00002cf0| 74 72 69 6e 67 3a 3a 74 | 6f 72 69 67 68 74 20 28 |tring::t|oright (| |00002d00| 63 6f 6e 73 74 20 63 68 | 61 72 20 2a 63 6f 6e 74 |const ch|ar *cont| |00002d10| 65 78 74 29 20 63 6f 6e | 73 74 0d 7b 0d 09 75 6e |ext) con|st.{..un| |00002d20| 73 69 67 6e 65 64 20 6c | 6f 6e 67 20 69 6e 74 20 |signed l|ong int | |00002d30| 70 6f 73 20 3d 20 72 69 | 67 68 74 70 6f 73 28 63 |pos = ri|ghtpos(c| |00002d40| 6f 6e 74 65 78 74 29 3b | 0d 09 0d 09 69 66 20 28 |ontext);|....if (| |00002d50| 70 6f 73 20 3d 3d 20 30 | 29 0d 09 09 72 65 74 75 |pos == 0|)...retu| |00002d60| 72 6e 20 4e 53 74 72 69 | 6e 67 28 29 3b 0d 09 09 |rn NStri|ng();...| |00002d70| 0d 09 72 65 74 75 72 6e | 20 28 74 6f 28 70 6f 73 |..return| (to(pos| |00002d80| 20 2b 20 73 74 72 6c 65 | 6e 28 63 6f 6e 74 65 78 | + strle|n(contex| |00002d90| 74 29 20 2d 20 31 29 29 | 3b 0d 7d 0d 0d 2f 2f 5f |t) - 1))|;.}..//_| |00002da0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00002db0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00002dc0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00002dd0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00002de0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00002df0| 0d 0d 4e 53 74 72 69 6e | 67 20 4e 53 74 72 69 6e |..NStrin|g NStrin| |00002e00| 67 3a 3a 74 6f 72 69 67 | 68 74 20 28 63 6f 6e 73 |g::torig|ht (cons| |00002e10| 74 20 63 68 61 72 20 63 | 6f 6e 74 65 78 74 29 20 |t char c|ontext) | |00002e20| 63 6f 6e 73 74 0d 7b 0d | 09 75 6e 73 69 67 6e 65 |const.{.|.unsigne| |00002e30| 64 20 6c 6f 6e 67 20 69 | 6e 74 20 70 6f 73 20 3d |d long i|nt pos =| |00002e40| 20 72 69 67 68 74 70 6f | 73 28 63 6f 6e 74 65 78 | rightpo|s(contex| |00002e50| 74 29 3b 0d 09 0d 09 69 | 66 20 28 70 6f 73 20 3d |t);....i|f (pos =| |00002e60| 3d 20 30 29 0d 09 09 72 | 65 74 75 72 6e 20 4e 53 |= 0)...r|eturn NS| |00002e70| 74 72 69 6e 67 28 29 3b | 0d 09 09 0d 09 72 65 74 |tring();|.....ret| |00002e80| 75 72 6e 20 28 74 6f 28 | 70 6f 73 29 29 3b 0d 7d |urn (to(|pos));.}| |00002e90| 0d 0d 2f 2f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |..//____|________| |00002ea0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00002eb0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00002ec0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00002ed0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00002ee0| 5f 5f 5f 5f 5f 0d 0d 4e | 53 74 72 69 6e 67 20 4e |_____..N|String N| |00002ef0| 53 74 72 69 6e 67 3a 3a | 74 6f 72 69 67 68 74 20 |String::|toright | |00002f00| 28 63 6f 6e 73 74 20 4e | 53 74 72 69 6e 67 26 20 |(const N|String& | |00002f10| 63 6f 6e 74 65 78 74 29 | 20 63 6f 6e 73 74 0d 7b |context)| const.{| |00002f20| 0d 09 75 6e 73 69 67 6e | 65 64 20 6c 6f 6e 67 20 |..unsign|ed long | |00002f30| 69 6e 74 20 70 6f 73 20 | 3d 20 72 69 67 68 74 70 |int pos |= rightp| |00002f40| 6f 73 28 63 6f 6e 74 65 | 78 74 29 3b 0d 09 0d 09 |os(conte|xt);....| |00002f50| 69 66 20 28 70 6f 73 20 | 3d 3d 20 30 29 0d 09 09 |if (pos |== 0)...| |00002f60| 72 65 74 75 72 6e 20 4e | 53 74 72 69 6e 67 28 29 |return N|String()| |00002f70| 3b 0d 09 09 0d 09 72 65 | 74 75 72 6e 20 28 74 6f |;.....re|turn (to| |00002f80| 28 70 6f 73 20 2b 20 63 | 6f 6e 74 65 78 74 2e 73 |(pos + c|ontext.s| |00002f90| 62 2d 3e 6c 65 6e 20 2d | 20 31 29 29 3b 0d 7d 0d |b->len -| 1));.}.| |00002fa0| 0d 2f 2f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |.//_____|________| |00002fb0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00002fc0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00002fd0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00002fe0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00002ff0| 5f 5f 5f 5f 0d 0d 4e 53 | 74 72 69 6e 67 20 4e 53 |____..NS|tring NS| |00003000| 74 72 69 6e 67 3a 3a 74 | 6f 72 69 67 68 74 20 28 |tring::t|oright (| |00003010| 63 6f 6e 73 74 20 41 6c | 70 68 61 62 65 74 26 20 |const Al|phabet& | |00003020| 63 6f 6e 74 65 78 74 29 | 20 63 6f 6e 73 74 0d 7b |context)| const.{| |00003030| 0d 09 75 6e 73 69 67 6e | 65 64 20 6c 6f 6e 67 20 |..unsign|ed long | |00003040| 69 6e 74 20 70 6f 73 20 | 3d 20 72 69 67 68 74 70 |int pos |= rightp| |00003050| 6f 73 28 63 6f 6e 74 65 | 78 74 29 3b 0d 09 0d 09 |os(conte|xt);....| |00003060| 69 66 20 28 70 6f 73 20 | 3d 3d 20 30 29 0d 09 09 |if (pos |== 0)...| |00003070| 72 65 74 75 72 6e 20 4e | 53 74 72 69 6e 67 28 29 |return N|String()| |00003080| 3b 0d 09 09 0d 09 72 65 | 74 75 72 6e 20 28 74 6f |;.....re|turn (to| |00003090| 28 70 6f 73 29 29 3b 0d | 7d 0d 0d 2f 2f 5f 5f 5f |(pos));.|}..//___| |000030a0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |000030b0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |000030c0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |000030d0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |000030e0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 0d 0d |________|______..| |000030f0| 4e 53 74 72 69 6e 67 20 | 4e 53 74 72 69 6e 67 3a |NString |NString:| |00003100| 3a 72 69 67 68 74 63 75 | 74 20 28 63 6f 6e 73 74 |:rightcu|t (const| |00003110| 20 63 68 61 72 20 2a 63 | 6f 6e 74 65 78 74 29 20 | char *c|ontext) | |00003120| 63 6f 6e 73 74 0d 7b 0d | 09 75 6e 73 69 67 6e 65 |const.{.|.unsigne| |00003130| 64 20 6c 6f 6e 67 20 69 | 6e 74 20 70 6f 73 20 3d |d long i|nt pos =| |00003140| 20 72 69 67 68 74 70 6f | 73 28 63 6f 6e 74 65 78 | rightpo|s(contex| |00003150| 74 29 3b 0d 09 0d 09 69 | 66 20 28 70 6f 73 20 3d |t);....i|f (pos =| |00003160| 3d 20 30 29 0d 09 09 72 | 65 74 75 72 6e 20 4e 53 |= 0)...r|eturn NS| |00003170| 74 72 69 6e 67 28 29 3b | 0d 09 0d 09 72 65 74 75 |tring();|....retu| |00003180| 72 6e 20 28 74 6f 28 70 | 6f 73 20 2d 31 29 29 3b |rn (to(p|os -1));| |00003190| 0d 7d 0d 0d 2f 2f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |.}..//__|________| |000031a0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |000031b0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |000031c0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |000031d0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |000031e0| 5f 5f 5f 5f 5f 5f 5f 0d | 0d 4e 53 74 72 69 6e 67 |_______.|.NString| |000031f0| 20 4e 53 74 72 69 6e 67 | 3a 3a 72 69 67 68 74 63 | NString|::rightc| |00003200| 75 74 20 28 63 6f 6e 73 | 74 20 63 68 61 72 20 63 |ut (cons|t char c| |00003210| 6f 6e 74 65 78 74 29 20 | 63 6f 6e 73 74 0d 7b 0d |ontext) |const.{.| |00003220| 09 75 6e 73 69 67 6e 65 | 64 20 6c 6f 6e 67 20 69 |.unsigne|d long i| |00003230| 6e 74 20 70 6f 73 20 3d | 20 72 69 67 68 74 70 6f |nt pos =| rightpo| |00003240| 73 28 63 6f 6e 74 65 78 | 74 29 3b 0d 09 0d 09 69 |s(contex|t);....i| |00003250| 66 20 28 70 6f 73 20 3d | 3d 20 30 29 0d 09 09 72 |f (pos =|= 0)...r| |00003260| 65 74 75 72 6e 20 4e 53 | 74 72 69 6e 67 28 29 3b |eturn NS|tring();| |00003270| 0d 09 0d 09 72 65 74 75 | 72 6e 20 28 74 6f 28 70 |....retu|rn (to(p| |00003280| 6f 73 20 2d 31 29 29 3b | 0d 7d 0d 0d 2f 2f 5f 5f |os -1));|.}..//__| |00003290| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |000032a0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |000032b0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |000032c0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |000032d0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 0d |________|_______.| |000032e0| 0d 4e 53 74 72 69 6e 67 | 20 4e 53 74 72 69 6e 67 |.NString| NString| |000032f0| 3a 3a 72 69 67 68 74 63 | 75 74 20 28 63 6f 6e 73 |::rightc|ut (cons| |00003300| 74 20 4e 53 74 72 69 6e | 67 26 20 63 6f 6e 74 65 |t NStrin|g& conte| |00003310| 78 74 29 20 63 6f 6e 73 | 74 0d 7b 0d 09 75 6e 73 |xt) cons|t.{..uns| |00003320| 69 67 6e 65 64 20 6c 6f | 6e 67 20 69 6e 74 20 70 |igned lo|ng int p| |00003330| 6f 73 20 3d 20 72 69 67 | 68 74 70 6f 73 28 63 6f |os = rig|htpos(co| |00003340| 6e 74 65 78 74 29 3b 0d | 09 0d 09 69 66 20 28 70 |ntext);.|...if (p| |00003350| 6f 73 20 3d 3d 20 30 29 | 0d 09 09 72 65 74 75 72 |os == 0)|...retur| |00003360| 6e 20 4e 53 74 72 69 6e | 67 28 29 3b 0d 09 0d 09 |n NStrin|g();....| |00003370| 72 65 74 75 72 6e 20 28 | 74 6f 28 70 6f 73 20 2d |return (|to(pos -| |00003380| 31 29 29 3b 0d 7d 0d 0d | 2f 2f 5f 5f 5f 5f 5f 5f |1));.}..|//______| |00003390| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |000033a0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |000033b0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |000033c0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |000033d0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 0d 0d 4e 53 74 |________|___..NSt| |000033e0| 72 69 6e 67 20 4e 53 74 | 72 69 6e 67 3a 3a 72 69 |ring NSt|ring::ri| |000033f0| 67 68 74 63 75 74 20 28 | 63 6f 6e 73 74 20 41 6c |ghtcut (|const Al| |00003400| 70 68 61 62 65 74 26 20 | 63 6f 6e 74 65 78 74 29 |phabet& |context)| |00003410| 20 63 6f 6e 73 74 0d 7b | 0d 09 75 6e 73 69 67 6e | const.{|..unsign| |00003420| 65 64 20 6c 6f 6e 67 20 | 69 6e 74 20 70 6f 73 20 |ed long |int pos | |00003430| 3d 20 72 69 67 68 74 70 | 6f 73 28 63 6f 6e 74 65 |= rightp|os(conte| |00003440| 78 74 29 3b 0d 09 0d 09 | 69 66 20 28 70 6f 73 20 |xt);....|if (pos | |00003450| 3d 3d 20 30 29 0d 09 09 | 72 65 74 75 72 6e 20 4e |== 0)...|return N| |00003460| 53 74 72 69 6e 67 28 29 | 3b 0d 09 0d 09 72 65 74 |String()|;....ret| |00003470| 75 72 6e 20 28 74 6f 28 | 70 6f 73 20 2d 31 29 29 |urn (to(|pos -1))| |00003480| 3b 0d 7d 0d 0d 2f 2f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |;.}..//_|________| |00003490| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |000034a0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |000034b0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |000034c0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |000034d0| 5f 5f 5f 5f 5f 5f 5f 5f | 0d 0d 69 6e 74 20 4e 53 |________|..int NS| |000034e0| 74 72 69 6e 67 3a 3a 65 | 6e 64 73 77 69 74 68 28 |tring::e|ndswith(| |000034f0| 63 6f 6e 73 74 20 63 68 | 61 72 20 2a 63 6f 6e 74 |const ch|ar *cont| |00003500| 65 78 74 29 20 63 6f 6e | 73 74 0d 7b 0d 09 75 6e |ext) con|st.{..un| |00003510| 73 69 67 6e 65 64 20 6c | 6f 6e 67 20 69 6e 74 20 |signed l|ong int | |00003520| 63 74 78 5f 6c 65 6e 20 | 3d 20 73 74 72 6c 65 6e |ctx_len |= strlen| |00003530| 28 63 6f 6e 74 65 78 74 | 29 3b 0d 09 0d 09 69 66 |(context|);....if| |00003540| 20 28 63 74 78 5f 6c 65 | 6e 20 3d 3d 20 30 29 0d | (ctx_le|n == 0).| |00003550| 09 09 72 65 74 75 72 6e | 20 28 31 29 3b 09 09 09 |..return| (1);...| |00003560| 09 09 09 09 09 09 09 09 | 09 09 09 09 09 09 09 2f |........|......./| |00003570| 2f 20 61 6e 20 65 6d 70 | 74 79 20 73 75 62 73 74 |/ an emp|ty subst| |00003580| 72 69 6e 67 20 63 61 6e | 20 62 65 20 66 6f 75 6e |ring can| be foun| |00003590| 64 20 65 76 65 72 79 77 | 68 65 72 65 0d 09 69 66 |d everyw|here..if| |000035a0| 20 28 63 74 78 5f 6c 65 | 6e 20 3e 20 73 62 2d 3e | (ctx_le|n > sb->| |000035b0| 6c 65 6e 29 0d 09 09 72 | 65 74 75 72 6e 20 28 30 |len)...r|eturn (0| |000035c0| 29 3b 09 09 09 09 09 09 | 09 09 09 09 09 09 09 09 |);......|........| |000035d0| 09 09 09 09 2f 2f 20 63 | 6f 6e 74 65 78 74 20 6c |....// c|ontext l| |000035e0| 6f 6e 67 65 72 20 74 68 | 61 6e 20 65 6e 74 69 72 |onger th|an entir| |000035f0| 65 20 4e 53 74 72 69 6e | 67 0d 09 72 65 74 75 72 |e NStrin|g..retur| |00003600| 6e 20 28 28 73 74 72 6e | 63 6d 70 28 73 62 2d 3e |n ((strn|cmp(sb->| |00003610| 73 74 72 20 2b 20 28 73 | 62 2d 3e 6c 65 6e 20 2d |str + (s|b->len -| |00003620| 20 63 74 78 5f 6c 65 6e | 29 2c 20 63 6f 6e 74 65 | ctx_len|), conte| |00003630| 78 74 2c 20 63 74 78 5f | 6c 65 6e 29 29 20 3f 20 |xt, ctx_|len)) ? | |00003640| 30 20 3a 20 31 29 3b 0d | 7d 0d 0d 2f 2f 5f 5f 5f |0 : 1);.|}..//___| |00003650| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00003660| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00003670| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00003680| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00003690| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 0d 0d |________|______..| |000036a0| 4e 53 74 72 69 6e 67 20 | 73 70 61 6e 20 28 63 6f |NString |span (co| |000036b0| 6e 73 74 20 63 68 61 72 | 20 63 6f 6e 74 65 78 74 |nst char| context| |000036c0| 2c 20 63 6f 6e 73 74 20 | 4e 53 74 72 69 6e 67 26 |, const |NString&| |000036d0| 20 73 29 0d 7b 0d 09 63 | 68 61 72 20 2a 63 74 78 | s).{..c|har *ctx| |000036e0| 20 3d 20 22 78 22 3b 0d | 09 0d 09 63 74 78 5b 30 | = "x";.|...ctx[0| |000036f0| 5d 20 3d 20 63 6f 6e 74 | 65 78 74 3b 0d 09 72 65 |] = cont|ext;..re| |00003700| 74 75 72 6e 20 28 73 2e | 74 6f 28 73 74 72 73 70 |turn (s.|to(strsp| |00003710| 6e 28 73 2e 73 62 2d 3e | 73 74 72 2c 20 63 74 78 |n(s.sb->|str, ctx| |00003720| 29 29 29 3b 0d 7d 0d 0d | 2f 2f 5f 5f 5f 5f 5f 5f |)));.}..|//______| |00003730| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00003740| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00003750| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00003760| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00003770| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 0d 0d 4e 53 74 |________|___..NSt| |00003780| 72 69 6e 67 20 73 70 61 | 6e 20 28 63 6f 6e 73 74 |ring spa|n (const| |00003790| 20 41 6c 70 68 61 62 65 | 74 26 20 63 6f 6e 74 65 | Alphabe|t& conte| |000037a0| 78 74 2c 20 63 6f 6e 73 | 74 20 4e 53 74 72 69 6e |xt, cons|t NStrin| |000037b0| 67 26 20 73 29 0d 7b 0d | 09 75 6e 73 69 67 6e 65 |g& s).{.|.unsigne| |000037c0| 64 20 6c 6f 6e 67 20 69 | 6e 74 20 69 3b 0d 09 0d |d long i|nt i;...| |000037d0| 09 66 6f 72 20 28 69 20 | 3d 20 30 3b 20 28 69 20 |.for (i |= 0; (i | |000037e0| 3c 20 73 2e 73 62 2d 3e | 6c 65 6e 29 20 26 26 20 |< s.sb->|len) && | |000037f0| 28 63 6f 6e 74 65 78 74 | 2e 63 6f 6e 74 61 69 6e |(context|.contain| |00003800| 73 28 73 2e 73 62 2d 3e | 73 74 72 5b 69 5d 29 29 |s(s.sb->|str[i]))| |00003810| 3b 20 69 2b 2b 29 3b 0d | 09 72 65 74 75 72 6e 20 |; i++);.|.return | |00003820| 28 73 2e 74 6f 28 69 29 | 29 3b 0d 7d 0d 0d 2f 2f |(s.to(i)|);.}..//| |00003830| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00003840| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00003850| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00003860| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00003870| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00003880| 5f 0d 0d 4e 53 74 72 69 | 6e 67 20 73 70 61 6e 20 |_..NStri|ng span | |00003890| 28 63 6f 6e 73 74 20 4e | 53 74 72 69 6e 67 26 20 |(const N|String& | |000038a0| 73 2c 20 63 6f 6e 73 74 | 20 63 68 61 72 20 63 6f |s, const| char co| |000038b0| 6e 74 65 78 74 29 0d 7b | 0d 09 75 6e 73 69 67 6e |ntext).{|..unsign| |000038c0| 65 64 20 6c 6f 6e 67 20 | 69 6e 74 20 69 2c 20 70 |ed long |int i, p| |000038d0| 6f 73 20 3d 20 30 3b 0d | 09 0d 09 69 66 20 28 73 |os = 0;.|...if (s| |000038e0| 2e 73 62 2d 3e 6c 65 6e | 20 3d 3d 20 30 29 0d 09 |.sb->len| == 0)..| |000038f0| 09 72 65 74 75 72 6e 20 | 28 73 29 3b 09 09 09 09 |.return |(s);....| |00003900| 09 09 09 09 09 09 09 09 | 09 09 09 09 09 09 2f 2f |........|......//| |00003910| 20 6e 6f 20 63 68 61 72 | 61 63 74 65 72 20 63 61 | no char|acter ca| |00003920| 6e 20 62 65 20 66 6f 75 | 6e 64 20 69 6e 20 61 6e |n be fou|nd in an| |00003930| 20 65 6d 70 74 79 20 73 | 74 72 69 6e 67 0d 09 09 | empty s|tring...| |00003940| 0d 09 66 6f 72 20 28 69 | 3d 73 2e 73 62 2d 3e 6c |..for (i|=s.sb->l| |00003950| 65 6e 3b 20 28 69 20 3e | 20 30 29 20 26 26 20 28 |en; (i >| 0) && (| |00003960| 70 6f 73 20 3d 3d 20 30 | 29 3b 20 69 2d 2d 29 09 |pos == 0|); i--).| |00003970| 09 09 09 09 09 09 2f 2f | 20 4e 6f 74 65 3a 20 28 |......//| Note: (| |00003980| 69 20 3e 3d 20 30 29 20 | 69 73 20 61 6c 77 61 79 |i >= 0) |is alway| |00003990| 73 20 54 52 55 45 20 66 | 6f 72 20 75 6e 73 69 67 |s TRUE f|or unsig| |000039a0| 6e 65 64 20 69 6e 74 2c | 0d 09 09 69 66 20 28 73 |ned int,|...if (s| |000039b0| 2e 73 62 2d 3e 73 74 72 | 5b 69 2d 31 5d 20 21 3d |.sb->str|[i-1] !=| |000039c0| 20 63 6f 6e 74 65 78 74 | 29 09 09 09 09 09 09 09 | context|).......| |000039d0| 09 09 09 09 09 2f 2f 09 | 09 73 6f 20 74 68 65 20 |.....//.|.so the | |000039e0| 72 61 6e 67 65 20 66 6f | 72 20 69 20 68 61 73 20 |range fo|r i has | |000039f0| 62 65 65 6e 20 6f 66 66 | 73 65 74 20 62 79 20 2b |been off|set by +| |00003a00| 31 0d 09 09 09 70 6f 73 | 20 3d 20 69 3b 0d 09 09 |1....pos| = i;...| |00003a10| 09 0d 09 72 65 74 75 72 | 6e 20 28 73 2e 66 72 6f |...retur|n (s.fro| |00003a20| 6d 28 70 6f 73 2b 31 29 | 29 3b 0d 7d 0d 0d 2f 2f |m(pos+1)|);.}..//| |00003a30| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00003a40| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00003a50| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00003a60| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00003a70| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00003a80| 5f 0d 0d 4e 53 74 72 69 | 6e 67 20 73 70 61 6e 20 |_..NStri|ng span | |00003a90| 28 63 6f 6e 73 74 20 4e | 53 74 72 69 6e 67 26 20 |(const N|String& | |00003aa0| 73 2c 20 63 6f 6e 73 74 | 20 41 6c 70 68 61 62 65 |s, const| Alphabe| |00003ab0| 74 26 20 63 6f 6e 74 65 | 78 74 29 0d 7b 0d 09 75 |t& conte|xt).{..u| |00003ac0| 6e 73 69 67 6e 65 64 20 | 6c 6f 6e 67 20 69 6e 74 |nsigned |long int| |00003ad0| 20 69 2c 20 70 6f 73 20 | 3d 20 30 3b 0d 09 0d 09 | i, pos |= 0;....| |00003ae0| 69 66 20 28 73 2e 73 62 | 2d 3e 6c 65 6e 20 3d 3d |if (s.sb|->len ==| |00003af0| 20 30 29 0d 09 09 72 65 | 74 75 72 6e 20 28 73 29 | 0)...re|turn (s)| |00003b00| 3b 09 09 09 09 09 09 09 | 09 09 09 09 09 09 09 09 |;.......|........| |00003b10| 09 09 09 2f 2f 20 6e 6f | 20 63 68 61 72 61 63 74 |...// no| charact| |00003b20| 65 72 20 63 61 6e 20 62 | 65 20 66 6f 75 6e 64 20 |er can b|e found | |00003b30| 69 6e 20 61 6e 20 65 6d | 70 74 79 20 73 74 72 69 |in an em|pty stri| |00003b40| 6e 67 0d 09 09 0d 09 66 | 6f 72 20 28 69 3d 73 2e |ng.....f|or (i=s.| |00003b50| 73 62 2d 3e 6c 65 6e 3b | 20 28 69 20 3e 20 30 29 |sb->len;| (i > 0)| |00003b60| 20 26 26 20 28 70 6f 73 | 20 3d 3d 20 30 29 3b 20 | && (pos| == 0); | |00003b70| 69 2d 2d 29 09 09 09 09 | 09 09 09 2f 2f 20 4e 6f |i--)....|...// No| |00003b80| 74 65 3a 20 28 69 20 3e | 3d 20 30 29 20 69 73 20 |te: (i >|= 0) is | |00003b90| 61 6c 77 61 79 73 20 54 | 52 55 45 20 66 6f 72 20 |always T|RUE for | |00003ba0| 75 6e 73 69 67 6e 65 64 | 20 69 6e 74 2c 0d 09 09 |unsigned| int,...| |00003bb0| 69 66 20 28 21 20 63 6f | 6e 74 65 78 74 2e 63 6f |if (! co|ntext.co| |00003bc0| 6e 74 61 69 6e 73 28 73 | 2e 73 62 2d 3e 73 74 72 |ntains(s|.sb->str| |00003bd0| 5b 69 2d 31 5d 29 29 09 | 09 09 09 09 09 09 09 09 |[i-1])).|........| |00003be0| 2f 2f 09 09 73 6f 20 74 | 68 65 20 72 61 6e 67 65 |//..so t|he range| |00003bf0| 20 66 6f 72 20 69 20 68 | 61 73 20 62 65 65 6e 20 | for i h|as been | |00003c00| 6f 66 66 73 65 74 20 62 | 79 20 2b 31 0d 09 09 09 |offset b|y +1....| |00003c10| 70 6f 73 20 3d 20 69 3b | 0d 09 09 09 0d 09 72 65 |pos = i;|......re| |00003c20| 74 75 72 6e 20 28 73 2e | 66 72 6f 6d 28 70 6f 73 |turn (s.|from(pos| |00003c30| 2b 31 29 29 3b 0d 7d 0d | 0d 2f 2f 5f 5f 5f 5f 5f |+1));.}.|.//_____| |00003c40| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00003c50| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00003c60| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00003c70| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00003c80| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 0d 0d 4e 53 |________|____..NS| |00003c90| 74 72 69 6e 67 20 6f 70 | 65 72 61 74 6f 72 2d 20 |tring op|erator- | |00003ca0| 28 63 6f 6e 73 74 20 63 | 68 61 72 20 63 2c 20 63 |(const c|har c, c| |00003cb0| 6f 6e 73 74 20 4e 53 74 | 72 69 6e 67 26 20 73 29 |onst NSt|ring& s)| |00003cc0| 0d 7b 0d 09 63 68 61 72 | 20 2a 63 74 78 20 3d 20 |.{..char| *ctx = | |00003cd0| 22 78 22 3b 0d 09 0d 09 | 63 74 78 5b 30 5d 20 3d |"x";....|ctx[0] =| |00003ce0| 20 63 3b 0d 09 72 65 74 | 75 72 6e 20 28 73 2e 66 | c;..ret|urn (s.f| |00003cf0| 72 6f 6d 28 73 74 72 73 | 70 6e 28 73 2e 73 62 2d |rom(strs|pn(s.sb-| |00003d00| 3e 73 74 72 2c 20 63 74 | 78 29 2b 31 29 29 3b 0d |>str, ct|x)+1));.| |00003d10| 7d 0d 0d 2f 2f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |}..//___|________| |00003d20| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00003d30| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00003d40| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00003d50| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00003d60| 5f 5f 5f 5f 5f 5f 0d 0d | 4e 53 74 72 69 6e 67 20 |______..|NString | |00003d70| 6f 70 65 72 61 74 6f 72 | 2d 20 28 63 6f 6e 73 74 |operator|- (const| |00003d80| 20 41 6c 70 68 61 62 65 | 74 26 20 63 74 78 2c 20 | Alphabe|t& ctx, | |00003d90| 63 6f 6e 73 74 20 4e 53 | 74 72 69 6e 67 26 20 73 |const NS|tring& s| |00003da0| 29 0d 7b 0d 09 75 6e 73 | 69 67 6e 65 64 20 6c 6f |).{..uns|igned lo| |00003db0| 6e 67 20 69 6e 74 20 69 | 3b 0d 09 0d 09 66 6f 72 |ng int i|;....for| |00003dc0| 20 28 69 3d 30 3b 20 28 | 69 20 3c 20 73 2e 73 62 | (i=0; (|i < s.sb| |00003dd0| 2d 3e 6c 65 6e 29 20 26 | 26 20 28 63 74 78 2e 63 |->len) &|& (ctx.c| |00003de0| 6f 6e 74 61 69 6e 73 28 | 73 2e 73 62 2d 3e 73 74 |ontains(|s.sb->st| |00003df0| 72 5b 69 5d 29 29 3b 20 | 69 2b 2b 29 3b 0d 09 72 |r[i])); |i++);..r| |00003e00| 65 74 75 72 6e 20 28 73 | 2e 66 72 6f 6d 28 69 2b |eturn (s|.from(i+| |00003e10| 31 29 29 3b 0d 7d 0d 0d | 2f 2f 5f 5f 5f 5f 5f 5f |1));.}..|//______| |00003e20| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00003e30| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00003e40| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00003e50| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00003e60| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 0d 0d 4e 53 74 |________|___..NSt| |00003e70| 72 69 6e 67 20 4e 53 74 | 72 69 6e 67 3a 3a 6f 70 |ring NSt|ring::op| |00003e80| 65 72 61 74 6f 72 2d 20 | 28 63 6f 6e 73 74 20 63 |erator- |(const c| |00003e90| 68 61 72 20 63 29 20 63 | 6f 6e 73 74 0d 7b 0d 09 |har c) c|onst.{..| |00003ea0| 75 6e 73 69 67 6e 65 64 | 20 6c 6f 6e 67 20 69 6e |unsigned| long in| |00003eb0| 74 20 69 2c 20 70 6f 73 | 20 3d 20 30 3b 0d 09 0d |t i, pos| = 0;...| |00003ec0| 09 69 66 20 28 73 62 2d | 3e 6c 65 6e 20 3d 3d 20 |.if (sb-|>len == | |00003ed0| 30 29 0d 09 09 72 65 74 | 75 72 6e 20 28 2a 74 68 |0)...ret|urn (*th| |00003ee0| 69 73 29 3b 09 09 09 09 | 09 09 09 09 09 09 09 09 |is);....|........| |00003ef0| 09 09 09 09 09 09 2f 2f | 20 6e 6f 20 63 68 61 72 |......//| no char| |00003f00| 61 63 74 65 72 20 63 61 | 6e 20 62 65 20 66 6f 75 |acter ca|n be fou| |00003f10| 6e 64 20 69 6e 20 61 6e | 20 65 6d 70 74 79 20 73 |nd in an| empty s| |00003f20| 74 72 69 6e 67 0d 09 09 | 0d 09 66 6f 72 20 28 69 |tring...|..for (i| |00003f30| 3d 73 62 2d 3e 6c 65 6e | 3b 20 28 69 20 3e 20 30 |=sb->len|; (i > 0| |00003f40| 29 20 26 26 20 28 70 6f | 73 20 3d 3d 20 30 29 3b |) && (po|s == 0);| |00003f50| 20 69 2d 2d 29 09 09 09 | 09 09 09 09 09 09 2f 2f | i--)...|......//| |00003f60| 20 4e 6f 74 65 3a 20 28 | 69 20 3e 3d 20 30 29 20 | Note: (|i >= 0) | |00003f70| 69 73 20 61 6c 77 61 79 | 73 20 54 52 55 45 20 66 |is alway|s TRUE f| |00003f80| 6f 72 20 75 6e 73 69 67 | 6e 65 64 20 69 6e 74 2c |or unsig|ned int,| |00003f90| 0d 09 09 69 66 20 28 73 | 62 2d 3e 73 74 72 5b 69 |...if (s|b->str[i| |00003fa0| 2d 31 5d 20 21 3d 20 63 | 29 09 09 09 09 09 09 09 |-1] != c|).......| |00003fb0| 09 09 09 09 09 09 09 09 | 09 2f 2f 09 09 73 6f 20 |........|.//..so | |00003fc0| 74 68 65 20 72 61 6e 67 | 65 20 66 6f 72 20 69 20 |the rang|e for i | |00003fd0| 68 61 73 20 62 65 65 6e | 20 6f 66 66 73 65 74 20 |has been| offset | |00003fe0| 62 79 20 2b 31 0d 09 09 | 09 70 6f 73 20 3d 20 69 |by +1...|.pos = i| |00003ff0| 3b 0d 09 09 09 0d 09 72 | 65 74 75 72 6e 20 28 74 |;......r|eturn (t| |00004000| 6f 28 70 6f 73 29 29 3b | 0d 7d 0d 0d 2f 2f 5f 5f |o(pos));|.}..//__| |00004010| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00004020| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00004030| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00004040| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00004050| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 0d |________|_______.| |00004060| 0d 4e 53 74 72 69 6e 67 | 20 4e 53 74 72 69 6e 67 |.NString| NString| |00004070| 3a 3a 6f 70 65 72 61 74 | 6f 72 2d 20 28 63 6f 6e |::operat|or- (con| |00004080| 73 74 20 41 6c 70 68 61 | 62 65 74 26 20 63 74 78 |st Alpha|bet& ctx| |00004090| 29 20 63 6f 6e 73 74 0d | 7b 0d 09 75 6e 73 69 67 |) const.|{..unsig| |000040a0| 6e 65 64 20 6c 6f 6e 67 | 20 69 6e 74 20 69 2c 20 |ned long| int i, | |000040b0| 70 6f 73 20 3d 20 30 3b | 0d 09 0d 09 69 66 20 28 |pos = 0;|....if (| |000040c0| 73 62 2d 3e 6c 65 6e 20 | 3d 3d 20 30 29 0d 09 09 |sb->len |== 0)...| |000040d0| 72 65 74 75 72 6e 20 28 | 2a 74 68 69 73 29 3b 09 |return (|*this);.| |000040e0| 09 09 09 09 09 09 09 09 | 09 09 09 09 09 09 09 09 |........|........| |000040f0| 09 2f 2f 20 6e 6f 20 63 | 68 61 72 61 63 74 65 72 |.// no c|haracter| |00004100| 20 63 61 6e 20 62 65 20 | 66 6f 75 6e 64 20 69 6e | can be |found in| |00004110| 20 61 6e 20 65 6d 70 74 | 79 20 73 74 72 69 6e 67 | an empt|y string| |00004120| 0d 09 09 0d 09 66 6f 72 | 20 28 69 3d 73 62 2d 3e |.....for| (i=sb->| |00004130| 6c 65 6e 3b 20 28 69 20 | 3e 20 30 29 20 26 26 20 |len; (i |> 0) && | |00004140| 28 70 6f 73 20 3d 3d 20 | 30 29 3b 20 69 2d 2d 29 |(pos == |0); i--)| |00004150| 09 09 09 09 09 09 09 09 | 09 2f 2f 20 4e 6f 74 65 |........|.// Note| |00004160| 3a 20 28 69 20 3e 3d 20 | 30 29 20 69 73 20 61 6c |: (i >= |0) is al| |00004170| 77 61 79 73 20 54 52 55 | 45 20 66 6f 72 20 75 6e |ways TRU|E for un| |00004180| 73 69 67 6e 65 64 20 69 | 6e 74 2c 0d 09 09 69 66 |signed i|nt,...if| |00004190| 20 28 21 20 63 74 78 2e | 63 6f 6e 74 61 69 6e 73 | (! ctx.|contains| |000041a0| 28 73 62 2d 3e 73 74 72 | 5b 69 2d 31 5d 29 29 09 |(sb->str|[i-1])).| |000041b0| 09 09 09 09 09 09 09 09 | 09 09 09 2f 2f 09 09 73 |........|...//..s| |000041c0| 6f 20 74 68 65 20 72 61 | 6e 67 65 20 66 6f 72 20 |o the ra|nge for | |000041d0| 69 20 68 61 73 20 62 65 | 65 6e 20 6f 66 66 73 65 |i has be|en offse| |000041e0| 74 20 62 79 20 2b 31 0d | 09 09 09 70 6f 73 20 3d |t by +1.|...pos =| |000041f0| 20 69 3b 0d 09 09 09 0d | 09 72 65 74 75 72 6e 20 | i;.....|.return | |00004200| 28 74 6f 28 70 6f 73 29 | 29 3b 0d 7d 0d 0d 2f 2f |(to(pos)|);.}..//| |00004210| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00004220| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00004230| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00004240| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00004250| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |00004260| 5f 0d 0d 4e 53 74 72 69 | 6e 67 26 20 4e 53 74 72 |_..NStri|ng& NStr| |00004270| 69 6e 67 3a 3a 6f 70 65 | 72 61 74 6f 72 2d 3d 20 |ing::ope|rator-= | |00004280| 28 63 6f 6e 73 74 20 63 | 68 61 72 20 63 29 0d 7b |(const c|har c).{| |00004290| 0d 09 63 6f 6e 73 74 20 | 63 68 61 72 20 2a 66 6e |..const |char *fn| |000042a0| 61 6d 65 20 3d 20 22 6f | 70 65 72 61 74 6f 72 2d |ame = "o|perator-| |000042b0| 3d 20 28 63 6f 6e 73 74 | 20 63 68 61 72 29 22 3b |= (const| char)";| |000042c0| 0d 09 63 68 61 72 20 2a | 63 74 78 20 3d 20 22 78 |..char *|ctx = "x| |000042d0| 22 3b 0d 09 75 6e 73 69 | 67 6e 65 64 20 6c 6f 6e |";..unsi|gned lon| |000042e0| 67 20 69 6e 74 20 6e 65 | 77 73 74 61 72 74 3b 0d |g int ne|wstart;.| |000042f0| 09 0d 09 63 74 78 5b 30 | 5d 20 3d 20 63 3b 0d 09 |...ctx[0|] = c;..| |00004300| 69 66 20 28 28 6e 65 77 | 73 74 61 72 74 20 3d 20 |if ((new|start = | |00004310| 73 74 72 73 70 6e 28 73 | 62 2d 3e 73 74 72 2c 20 |strspn(s|b->str, | |00004320| 63 74 78 29 29 20 3d 3d | 20 30 29 0d 09 09 72 65 |ctx)) ==| 0)...re| |00004330| 74 75 72 6e 20 28 2a 74 | 68 69 73 29 3b 0d 09 0d |turn (*t|his);...| |00004340| 09 69 66 20 28 73 62 2d | 3e 72 65 66 73 20 3e 20 |.if (sb-|>refs > | |00004350| 31 29 0d 09 7b 0d 09 09 | 73 74 72 62 6f 64 79 20 |1)..{...|strbody | |00004360| 2a 6f 6c 64 5f 73 62 20 | 3d 20 73 62 3b 0d 09 09 |*old_sb |= sb;...| |00004370| 0d 09 09 69 66 20 28 21 | 20 47 65 74 4e 65 77 53 |...if (!| GetNewS| |00004380| 42 28 73 62 2d 3e 6c 65 | 6e 20 2d 20 6e 65 77 73 |B(sb->le|n - news| |00004390| 74 61 72 74 29 29 0d 09 | 09 09 4f 55 54 5f 4f 46 |tart))..|..OUT_OF| |000043a0| 5f 4d 45 4d 28 66 6e 61 | 6d 65 29 3b 0d 09 09 69 |_MEM(fna|me);...i| |000043b0| 66 20 28 73 62 2d 3e 6c | 65 6e 20 3d 3d 20 30 29 |f (sb->l|en == 0)| |000043c0| 0d 09 09 09 72 65 74 75 | 72 6e 20 28 2a 74 68 69 |....retu|rn (*thi| |000043d0| 73 29 3b 0d 09 09 73 74 | 72 63 70 79 28 73 62 2d |s);...st|rcpy(sb-| |000043e0| 3e 73 74 72 2c 20 6f 6c | 64 5f 73 62 2d 3e 73 74 |>str, ol|d_sb->st| |000043f0| 72 20 2b 20 6e 65 77 73 | 74 61 72 74 29 3b 0d 09 |r + news|tart);..| |00004400| 7d 0d 09 65 6c 73 65 0d | 09 7b 09 0d 09 09 75 6e |}..else.|.{....un| |00004410| 73 69 67 6e 65 64 20 6c | 6f 6e 67 20 69 6e 74 20 |signed l|ong int | |00004420| 6e 65 77 5f 6c 65 6e 20 | 3d 20 73 62 2d 3e 6c 65 |new_len |= sb->le| |00004430| 6e 20 2d 20 6e 65 77 73 | 74 61 72 74 3b 0d 09 09 |n - news|tart;...| |00004440| 0d 09 09 6d 65 6d 6d 6f | 76 65 28 73 62 2d 3e 73 |...memmo|ve(sb->s| |00004450| 74 72 2c 20 73 62 2d 3e | 73 74 72 20 2b 20 6e 65 |tr, sb->|str + ne| |00004460| 77 73 74 61 72 74 2c 20 | 6e 65 77 5f 6c 65 6e 20 |wstart, |new_len | |00004470| 2b 20 31 29 3b 0d 09 09 | 69 66 20 28 21 20 52 65 |+ 1);...|if (! Re| |00004480| 61 6c 6c 6f 63 53 74 72 | 42 75 66 28 6e 65 77 5f |allocStr|Buf(new_| |00004490| 6c 65 6e 29 29 09 09 09 | 09 09 09 09 09 09 09 09 |len))...|........| |000044a0| 09 2f 2f 20 73 68 72 69 | 6e 6b 20 73 74 72 69 6e |.// shri|nk strin| |000044b0| 67 20 62 75 66 66 65 72 | 0d 09 09 7b 0d 09 09 09 |g buffer|...{....| |000044c0| 73 62 2d 3e 6c 65 6e 20 | 3d 20 6e 65 77 5f 6c 65 |sb->len |= new_le| |000044d0| 6e 3b 09 09 09 09 09 09 | 09 09 09 09 09 09 09 09 |n;......|........| |000044e0| 09 2f 2f 20 6e 65 63 65 | 73 73 61 72 79 20 74 6f |.// nece|ssary to| |000044f0| 20 6b 65 65 70 20 74 68 | 65 20 4e 53 74 72 69 6e | keep th|e NStrin| |00004500| 67 20 69 6e 20 61 20 63 | 6f 68 65 72 65 6e 74 20 |g in a c|oherent | |00004510| 73 74 61 74 65 0d 09 09 | 09 4f 55 54 5f 4f 46 5f |state...|.OUT_OF_| |00004520| 4d 45 4d 28 66 6e 61 6d | 65 29 3b 09 09 09 09 09 |MEM(fnam|e);.....| |00004530| 09 09 09 09 09 09 09 09 | 2f 2f 20 74 68 69 73 20 |........|// this | |00004540| 22 4f 75 74 20 6f 66 20 | 4d 65 6d 6f 72 79 22 20 |"Out of |Memory" | |00004550| 73 68 6f 75 6c 64 20 6e | 65 76 65 72 20 68 61 70 |should n|ever hap| |00004560| 70 65 6e 20 2e 2e 2e 0d | 09 09 7d 0d 09 09 0d 09 |pen ....|..}.....| |00004570| 09 73 62 2d 3e 6c 65 6e | 20 3d 20 6e 65 77 5f 6c |.sb->len| = new_l| |00004580| 65 6e 3b 0d 09 7d 0d 09 | 0d 09 72 65 74 75 72 6e |en;..}..|..return| |00004590| 20 28 2a 74 68 69 73 29 | 3b 0d 7d 0d 0d 2f 2f 5f | (*this)|;.}..//_| |000045a0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |000045b0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |000045c0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |000045d0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |000045e0| 5f 5f 5f 5f 5f 5f 5f 5f | 5f 5f 5f 5f 5f 5f 5f 5f |________|________| |000045f0| 0d 0d 4e 53 74 72 69 6e | 67 26 20 4e 53 74 72 69 |..NStrin|g& NStri| |00004600| 6e 67 3a 3a 6f 70 65 72 | 61 74 6f 72 2d 3d 20 28 |ng::oper|ator-= (| |00004610| 63 6f 6e 73 74 20 41 6c | 70 68 61 62 65 74 26 20 |const Al|phabet& | |00004620| 63 74 78 29 0d 7b 0d 09 | 63 6f 6e 73 74 20 63 68 |ctx).{..|const ch| |00004630| 61 72 20 2a 66 6e 61 6d | 65 20 3d 20 22 6f 70 65 |ar *fnam|e = "ope| |00004640| 72 61 74 6f 72 2d 3d 20 | 28 63 6f 6e 73 74 20 41 |rator-= |(const A| |00004650| 6c 70 68 61 62 65 74 26 | 29 22 3b 0d 09 75 6e 73 |lphabet&|)";..uns| |00004660| 69 67 6e 65 64 20 6c 6f | 6e 67 20 69 6e 74 20 6e |igned lo|ng int n| |00004670| 65 77 73 74 61 72 74 3b | 0d 09 0d 09 66 6f 72 20 |ewstart;|....for | |00004680| 28 6e 65 77 73 74 61 72 | 74 3d 30 3b 20 28 6e 65 |(newstar|t=0; (ne| |00004690| 77 73 74 61 72 74 20 3c | 20 73 62 2d 3e 6c 65 6e |wstart <| sb->len| |000046a0| 29 20 26 26 20 28 63 74 | 78 2e 63 6f 6e 74 61 69 |) && (ct|x.contai| |000046b0| 6e 73 28 73 62 2d 3e 73 | 74 72 5b 6e 65 77 73 74 |ns(sb->s|tr[newst| |000046c0| 61 72 74 5d 29 29 3b 20 | 6e 65 77 73 74 61 72 74 |art])); |newstart| |000046d0| 2b 2b 29 3b 0d 0d 09 69 | 66 20 28 6e 65 77 73 74 |++);...i|f (newst| |000046e0| 61 72 74 20 3d 3d 20 30 | 29 0d 09 09 72 65 74 75 |art == 0|)...retu| |000046f0| 72 6e 20 28 2a 74 68 69 | 73 29 3b 0d 09 0d 09 69 |rn (*thi|s);....i| |00004700| 66 20 28 73 62 2d 3e 72 | 65 66 73 20 3e 20 31 29 |f (sb->r|efs > 1)| |00004710| 0d 09 7b 0d 09 09 73 74 | 72 62 6f 64 79 20 2a 6f |..{...st|rbody *o| |00004720| 6c 64 5f 73 62 20 3d 20 | 73 62 3b 0d 09 09 0d 09 |ld_sb = |sb;.....| |00004730| 09 69 66 20 28 21 20 47 | 65 74 4e 65 77 53 42 28 |.if (! G|etNewSB(| |00004740| 73 62 2d 3e 6c 65 6e 20 | 2d 20 6e 65 77 73 74 61 |sb->len |- newsta| |00004750| 72 74 29 29 0d 09 09 09 | 4f 55 54 5f 4f 46 5f 4d |rt))....|OUT_OF_M| |00004760| 45 4d 28 66 6e 61 6d 65 | 29 3b 0d 09 09 69 66 20 |EM(fname|);...if | |00004770| 28 73 62 2d 3e 6c 65 6e | 20 3d 3d 20 30 29 0d 09 |(sb->len| == 0)..| |00004780| 09 09 72 65 74 75 72 6e | 20 28 2a 74 68 69 73 29 |..return| (*this)| |00004790| 3b 0d 09 09 73 74 72 63 | 70 79 28 73 62 2d 3e 73 |;...strc|py(sb->s| |000047a0| 74 72 2c 20 6f 6c 64 5f | 73 62 2d 3e 73 74 72 20 |tr, old_|sb->str | |000047b0| 2b 20 6e 65 77 73 74 61 | 72 74 29 3b 0d 09 7d 0d |+ newsta|rt);..}.| |000047c0| 09 65 6c 73 65 0d 09 7b | 09 0d 09 09 75 6e 73 69 |.else..{|....unsi| |000047d0| 67 6e 65 64 20 6c 6f 6e | 67 20 69 6e 74 20 6e 65 |gned lon|g int ne| |000047e0| 77 5f 6c 65 6e 20 3d 20 | 73 62 2d 3e 6c 65 6e 20 |w_len = |sb->len | |000047f0| 2d 20 6e 65 77 73 74 61 | 72 74 3b 0d 09 09 0d 09 |- newsta|rt;.....| |00004800| 09 6d 65 6d 6d 6f 76 65 | 28 73 62 2d 3e 73 74 72 |.memmove|(sb->str| |00004810| 2c 20 73 62 2d 3e 73 74 | 72 20 2b 20 6e 65 77 73 |, sb->st|r + news| |00004820| 74 61 72 74 2c 20 6e 65 | 77 5f 6c 65 6e 20 2b 20 |tart, ne|w_len + | |00004830| 31 29 3b 0d 09 09 69 66 | 20 28 21 20 52 65 61 6c |1);...if| (! Real| |00004840| 6c 6f 63 53 74 72 42 75 | 66 28 6e 65 77 5f 6c 65 |locStrBu|f(new_le| |00004850| 6e 29 29 09 09 09 09 09 | 09 09 09 09 09 09 09 2f |n)).....|......./| |00004860| 2f 20 73 68 72 69 6e 6b | 20 73 74 72 69 6e 67 20 |/ shrink| string | |00004870| 62 75 66 66 65 72 0d 09 | 09 7b 0d 09 09 09 73 62 |buffer..|.{....sb| |00004880| 2d 3e 6c 65 6e 20 3d 20 | 6e 65 77 5f 6c 65 6e 3b |->len = |new_len;| |00004890| 09 09 09 09 09 09 09 09 | 09 09 09 09 09 09 09 2f |........|......./| |000048a0| 2f 20 6e 65 63 65 73 73 | 61 72 79 20 74 6f 20 6b |/ necess|ary to k| |000048b0| 65 65 70 20 74 68 65 20 | 4e 53 74 72 69 6e 67 20 |eep the |NString | |000048c0| 69 6e 20 61 20 63 6f 68 | 65 72 65 6e 74 20 73 74 |in a coh|erent st| |000048d0| 61 74 65 0d 09 09 09 4f | 55 54 5f 4f 46 5f 4d 45 |ate....O|UT_OF_ME| |000048e0| 4d 28 66 6e 61 6d 65 29 | 3b 09 09 09 09 09 09 09 |M(fname)|;.......| |000048f0| 09 09 09 09 09 09 2f 2f | 20 74 68 69 73 20 22 4f |......//| this "O| |00004900| 75 74 20 6f 66 20 4d 65 | 6d 6f 72 79 22 20 73 68 |ut of Me|mory" sh| |00004910| 6f 75 6c 64 20 6e 65 76 | 65 72 20 68 61 70 70 65 |ould nev|er happe| |00004920| 6e 20 2e 2e 2e 0d 09 09 | 7d 0d 09 09 0d 09 09 73 |n ......|}......s| |00004930| 62 2d 3e 6c 65 6e 20 3d | 20 6e 65 77 5f 6c 65 6e |b->len =| new_len| |00004940| 3b 0d 09 7d 0d 09 0d 09 | 72 65 74 75 72 6e 20 28 |;..}....|return (| |00004950| 2a 74 68 69 73 29 3b 0d | 7d 0d 00 00 00 00 00 00 |*this);.|}.......| |00004960| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........| |00004970| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........| |00004980| 00 00 01 00 00 00 01 62 | 00 00 00 62 00 00 00 5a |.......b|...b...Z| |00004990| 5f 66 75 6e 63 29 3b 0d | 76 6f 69 64 20 71 73 6f |_func);.|void qso| |000049a0| 72 74 28 76 6f 69 64 20 | 2a 2c 20 73 69 7a 65 5f |rt(void |*, size_| |000049b0| 15 4e 53 74 72 69 6e 67 | 5f 53 75 62 73 74 72 69 |.NString|_Substri| |000049c0| 6e 67 2e 63 78 78 02 00 | 00 00 50 61 72 74 53 49 |ng.cxx..|..PartSI| |000049d0| 00 00 50 61 72 74 53 49 | 54 21 00 00 00 00 00 00 |..PartSI|T!......| |000049e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........| |000049f0| 00 00 ab 4c 25 38 00 00 | 00 00 00 00 01 bc 64 69 |...L%8..|......di| |00004a00| 76 5f 74 20 6c 64 69 76 | 28 6c 6f 6e 67 2c 20 6c |v_t ldiv|(long, l| |00004a10| 6f 6e 67 29 3b 0d 0d 69 | 6e 74 20 6d 62 6c 65 6e |ong);..i|nt mblen| |00004a20| 28 63 6f 6e 73 74 20 63 | 68 61 72 20 2a 2c 20 73 |(const c|har *, s| |00004a30| 69 7a 65 5f 74 29 3b 0d | 69 6e 74 20 6d 62 74 6f |ize_t);.|int mbto| |00004a40| 77 63 28 77 63 68 61 72 | 5f 74 20 2a 2c 20 63 6f |wc(wchar|_t *, co| |00004a50| 6e 73 74 20 63 68 61 72 | 20 2a 2c 20 73 69 7a 65 |nst char| *, size| |00004a60| 5f 74 29 3b 0d 69 6e 74 | 20 77 63 74 6f 6d 62 28 |_t);.int| wctomb(| |00004a70| 63 68 61 72 20 2a 2c 20 | 77 63 68 61 72 5f 74 29 |char *, |wchar_t)| |00004a80| 00 00 00 04 00 07 00 02 | 00 00 00 0a 00 0a 06 47 |........|.......G| |00004a90| 65 6e 65 76 61 67 00 00 | 00 48 00 0a 47 65 6e 65 |enevag..|.H..Gene| |00004aa0| 76 61 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |va......|........| |00004ab0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 07 00 02 |........|........| |00004ac0| 00 2c 00 03 02 6d 03 3d | 00 2a 00 04 01 dc 02 7c |.,...m.=|.*.....|| |00004ad0| ab 46 8e ac 00 00 33 e9 | 00 00 33 e9 00 00 00 00 |.F....3.|..3.....| |00004ae0| 00 00 00 00 01 00 00 00 | 01 62 00 00 00 62 00 00 |........|.b...b..| |00004af0| 00 5a 00 d7 bb cc 17 82 | 00 00 00 1c 00 5a 00 02 |.Z......|.....Z..| |00004b00| 45 54 41 42 00 00 00 1a | 45 46 4e 54 00 00 00 26 |ETAB....|EFNT...&| |00004b10| 4d 50 53 52 00 00 00 32 | 03 ec ff ff 00 00 00 00 |MPSR...2|........| |00004b20| 00 00 00 00 03 eb ff ff | 00 00 00 08 00 00 00 00 |........|........| |00004b30| 03 ed ff ff 00 00 00 16 | 00 ed 60 7c 00 00 00 00 |........|..`|....| |00004b40| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........| |00004b50| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........| |00004b60| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........| |00004b70| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........| +--------+-------------------------+-------------------------+--------+--------+